[解決済み】JavaでZellerの合同を使用して曜日を決定する
2022-02-18 03:28:15
質問
ツェラーの合同プログラムを1時間見つめているが、どこに論理の間違いがあるのか分からない。どなたか、その誤りを指摘していただけませんか?よろしくお願いします。
// Implement the Zeller's congruence algorithm.
// To calculate the day of the week
import java.util.Scanner;
public class DayOfTheWeek {
public static void main(String[] args) {
// Create a Scanner
Scanner input = new Scanner(System.in);
// Prompt the user to enter a year, month and a day
System.out.print("Enter year (e.g., 2008): ");
int year = input.nextInt();
System.out.print("Enter month: 1-12: ");
int month = input.nextInt();
System.out.print("Enter the day of the month: 1-31: ");
int day = input.nextInt();
// Check if the month is January or February
// If the month is January and February, convert to 13, and 14,
// and year has to -1. (Go to previous year).
if (month == 1 || month == 2) {
month += 12;
year--;
}
// Compute the answer
int k = year % 7; // The year of the century
int j = (int)(year / 100.0); // the century
int q = day;
int m = month;
int h = (q + (int)((26 * (m + 1)) / 10.0) + k + (int)(k / 4.0)
+ (int)(j / 4.0) + (5 * j)) % 7;
String result = "Day of the week is ";
//Display the name of the day of the week
if (h == 0)
System.out.print(result + "Saturday");
else if (h == 1)
System.out.print(result + "Sunday");
else if (h == 2)
System.out.print(result + "Monday");
else if (h == 3)
System.out.print(result + "Tuesday");
else if (h == 4)
System.out.print(result + "Wednesday");
else if (h == 5)
System.out.print(result + "Thursday");
else
System.out.print(result + "Friday");
}
}
解決するには?
プレ {コードを希望する場合があります。 {コード を、そこに置く。
また、2つの数式を混ぜていますね。ソフトウェアでの最適な実装を求めるなら( ウィキペディアより提供 )、これを試してみてください。
int k = year % 7; // The year of the century
またはこれ
% 100
あなたは(おそらく不注意に)2番目のソフトウェア式の開始を1番目の式の終了に使用し、コンピュータを混乱させることになりました。
関連
-
[解決済み] java のクラス内のコンストラクタは、指定された型に適用できない
-
[解決済み] メソッドがそのスーパークラスのメソッドをオーバーライドしない
-
[解決済み】 JAVA 変数宣言はここではできない
-
[解決済み】破損したjarファイル
-
[解決済み] JavaにおけるHashMapとHashtableの違いは何ですか?
-
[解決済み] Javaにおけるpublic、protected、package-private、privateの違いは何ですか?
-
[解決済み] Java の配列を表示する最も簡単な方法は何ですか?
-
[解決済み] ファイルの内容からJavaの文字列を作成するにはどうすればよいですか?
-
[解決済み] Javaの「for each」ループはどのように機能するのですか?
-
[解決済み】JSP 2を使用して、JSPファイル内のJavaコードを回避するにはどうすればよいですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] java.sql.SQLException: ユーザー 'root'@'localhost' (using password: YES) のためのアクセスが拒否されました。
-
[解決済み】エラー:配列または java.lang.Iterable のインスタンスに対してのみ反復処理を行うことができます。
-
[解決済み】StringUtils.isBlank() vs String.isEmpty()
-
[解決済み】不正な反射的アクセスとは?
-
[解決済み】Javaクラスの "型に解決できない"
-
[解決済み】 java.lang.ClassNotFoundException: oracle.jdbc.driver.OracleDriver [重複]。
-
[解決済み】Mockitoでモックからチェックされた例外を投げる
-
[解決済み】なぜjava.io.Fileにはcloseメソッドがないのでしょうか?
-
[解決済み】JLabelのテキストを中央に配置するには?
-
[解決済み】 executeQuery()でデータ操作文が発行できない。)