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 などのコードを使用した場合、+ はステートメントではないというエラーが表示されます