私はZellerの合同と呼ばれる曜日を計算するためのアルゴリズムが与えられている教科書からこのプログラミング演習を行っています。まあ、教科書のサンプルと同じ出力を得ることができると思いますか? 2002年、3月、26日になります。サンプルは火曜日に読み返しています。私はいくつかの改造と書き換えを行い、火曜日の近くにはどこにも行けません!曜日、java、およびZellerの合同!
それは誰のものであれば包括的な教科書8eの133ページです...私は初心者ですので、建設的なフィードバックが大歓迎です!
あなたのアドバイスをいただければ幸いです。
import java.util.Scanner;
public class DayOfTheWeek {
public static void main(String[] args) {
// Set up the scanner...
Scanner input = new Scanner(System.in);
// Set up the day's of the week with 0 being Sat as per algorithm.
final String[] DAY_OF_WEEK = {"Saturday", "Sunday", "Monday",
"Tuesday", "Wednesday", "Thursday", "Friday"};
// Get the year
System.out.print("Enter the year (e.g., 2002): ");
int year = input.nextInt();
// Get the month
System.out.print("Enter the month 1-12: ");
int month = input.nextInt();
// Get the day
System.out.print("Enter the day 1-31: ");
int day = input.nextInt();
// According to the algorithm Jan is 13 & Feb 14...
if (month == 1) month = 13;
else if (month == 2) month = 14;
// j Is the century.
int j = year/100;
// k Is the year of the century.
int k = year % 100 ;
// Calculate
double h = (month + ((26*(month + 1))/10) + k + (k/4) +
(j/4) + (5 * j)) % 7;
// Cast answer back to integer to get result from array
int ans = (int)h;
// Print result
System.out.println("Day of the week is: " + DAY_OF_WEEK[ans]);
}
}
私をビートしてください!また、私はwikiページの数学の構文を理解していませんが、整数の分割で十分ですか? – Bringer128
私はnotiationは単なる除算だと思うが、絶対値がそれぞれの周りにラップされているので、かなり "整数除算"だ。 –
部門の周りの線はfloor関数です(常に丸めます)。 Linが言ったように、それは整数除算です。頂点(bottonではなく)のコーナーがceil関数(常に丸めます)の場合。 – helios