获取一年中的第一天(任何编程语言)

时间:2011-07-26 19:05:40

标签: dayofweek

如何获得任何给定年份(第1天至第7天或工作日名称)的一周中的第一天?

我试图在JavaScript中弄明白,但我接受任何其他语言。

我需要选择一年才能构建完整的日历(我想使用HTML表格和JavaScript),为此我至少需要知道所选年份的第一天。

我没有找到解决方案或问题,专门处理找到任何给定年份的第一天,这样你只需要通过1995年,2007年,1891年。所以,如果这是一个重复的问题请指出解决方案。

您是否至少有一个在线图表或DHTML网站,我可以通过这种方式直观地查看任何一年的完整日历?

5 个答案:

答案 0 :(得分:4)

在Javascript中你可以使用它:

getWeekDay = function (year) {
  var d = new Date(); 
  d.setFullYear(year,0,1);
  return d.getDay()+1;
};

document.write(getWeekDay(2011));

根据要求,结果为1..7。

答案 1 :(得分:2)

使用.NET的BCL:

return new DateTime(year, 1, 1).DayOfWeek; // DayOfWeek enum value

Noda Time中:

return new LocalDate(year, 1, 1).IsoDayOfWeek; // IsoDayOfWeek enum value

在Java中使用内置类:

Calendar calendar = Calendar.getInstance();
calendar.set(year, 1, 1);
return calendar.get(Calendar.DAY_OF_WEEK); // 1 (Sunday) - 7 (Saturday)

在Java中使用Joda Time

return new LocalDate(year, 1, 1).getDayOfWeek(); // 1 (Monday) - 7 (Sunday)

答案 2 :(得分:2)

使用C#和.NET非常简单:

using System;

public class SomeClass
{
    public static void Main()
    {
        DateTime dt = new DateTime(2000,1,1);
        Console.WriteLine(dt.DayOfWeek);

        dt = new DateTime(2010,1,1);
        Console.WriteLine(dt.DayOfWeek);
    }
}

输出:

Saturday 
Friday

Java版本:

import java.util.Date;
import java.util.GregorianCalendar;

public class test3
{
    public static void main (String[] args)
    {
        GregorianCalendar c = new GregorianCalendar(2000,1,1);  
        Date d = c.getTime();
        System.out.println(d.getDay());

        c = new GregorianCalendar(2010,1,1);    
        d = c.getTime();
        System.out.println(d.getDay());
    }
}

输出:

2
1

答案 3 :(得分:2)

在此Wikipedia article,查找Sakamoto的算法。

答案 4 :(得分:1)

此网站http://5dspace-time.org/Calendar/Algorithm.html 有关如何使用铅笔纸计算它的很好的解释

Wikipedia也解释了

相关问题