2

特定の年の週の最初の曜日 (1 から 7 までの日、または曜日名)を取得するにはどうすればよいですか?

JavaScript で理解しようとしましたが、他の言語を受け入れます。

後で完全なカレンダーを作成するために年を選択する必要があります (HTML テーブルと JavaScript を使用すると考えていました)。そのためには、少なくとも選択した年の最初の日を知る必要があります。

1995年、2007年、1891年を渡すだけでよいように、特定の年の最初の日を見つけることを具体的に扱った解決策や質問は見つかりませんでした。したがって、質問が繰り返される場合は、解決策を指摘してください

少なくとも、任意の年の完全なカレンダーをそのように視覚的に表示できるオンライン チャートまたは DHTML サイトはありますか?

4

5 に答える 5

4

Javascriptでは、これを使用できます:

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

document.write(getWeekDay(2011));

要求どおり、結果は 1..7 です。

于 2011-07-26T19:18:21.663 に答える
2

.NETのBCLを使用する場合:

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

野田時間

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)

Joda Timeを使用するJavaの場合:

return new LocalDate(year, 1, 1).getDayOfWeek(); // 1 (Monday) - 7 (Sunday)
于 2011-07-26T19:09:37.060 に答える
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
于 2011-07-26T19:10:01.800 に答える
2

このウィキペディアの記事で、坂本のアルゴリズムを探してください。

于 2011-07-26T19:14:42.757 に答える
1

このサイトhttp://5dspace-time.org/Calendar/Algorithm.html には、鉛筆と紙を使っても計算する方法についての良い説明があります。

ウィキペディアもそれを説明しています

于 2011-07-26T19:11:03.713 に答える