0

1753 年以降の特定の日付の曜日を計算するアルゴリズムの疑似コードは次のとおりです。d を日付 (1 から 31 まで)、m を月を表す整数 (1 は 1 月、2 は 2 月など)、y は年を表します。次に、アルゴリズムは次の手順を順番に実行します。

If m is less than 3
Add 12 to m and subtract one from y
End if
Set C to be the year of the century (e.g., 10 for the year 2010)
Set D to be the century (e.g., 20 for the year 2010)
Divide 13 * (m + 1) by 5 and call the quotient W
Divide C by 4 and call the quotient X
Divide D by 4 and call the quotient Y
Set Z to be W + X + Y + d + C - 2 * D
Divide Z by 7 and call the remainder day
If day is less than 0
Add 7 to day
End if

day の値は、0 = 土曜日、1 = 日曜日、最大 6 = 金曜日の曜日を示します。

私がこれまでに持っているコードは次のとおりです。

public static String dayOfWeek( SimpleDate date ) {
        // TO BE COMPLETED
        int[] d = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31};
        int[] m = {1,2,3,4,5,6,7,8,9,10,11,12};
        int y = SimpleDate(int year);

        if (m < 3) {
            m + 12;
            y - 1;
        }
        C = SimpleDate(int year[2:3];
        D = SimpleDate(int year[0:1];
        W = 13 * (m + 1) / 5;
        X = C / 4;
        Y = D / 4;
        Z = W + X + Y + d + C - 2 * D;
        day = Z % 7;
        if (day < 0) {
            day + 7;
        }

CとDの年を設定する方法と、最初の方法もわかりません。また、m + 12 などのコードを使用した場合、+ はステートメントではないというエラーが表示されます

4

2 に答える 2

2

java.util.Calendar使ってみてはどうですか

calendar.get(Calendar.DAY_OF_WEEK);
于 2013-02-19T22:48:54.707 に答える
1

joda の使用:

MutableDateTime dateTimeInstance = new MutableDateTime().setYear(year).setMonth(month).setDay(dayOfMonth); // and so on per [the docs](http://joda-time.sourceforge.net/api-release/org/joda/time/MutableDateTime.html)
String dayName = dateTimeInstance.dayOfWeek().getAsText();
于 2013-02-19T22:51:39.483 に答える