HOWTO · Java

Java で Zellers Congruence を使用して曜日を見つける

このチュートリアルでは、Java で Zellers 合同を使用して曜日を見つける方法について説明します。

この記事では、Java を使用して Zeller の合同式を実装し、曜日を見つける方法を示します。 また、トピックを簡単にするために、行ごとの説明を含む例を見ていきます。

Java で Zeller の合同式を使用して曜日を見つける

この記事で使用しているアルゴリズムは、前年の 1月13 として、2月14 として数えることです。

たとえば、日付が 2009 年 1 月 13 日 の場合、アルゴリズムはそれを 2008 年の 13 番目の月 としてカウントします。 次のコード フェンスでは、1 週間の日を見つける方法を示します。

コード例:

public class FindDay {
  // A method to print a day for a Date
  static void ZellerCongruence(int Day, int Month, int Year) {
    if (Month == 1) { // Checking the month if it's "January"
      Month = 13;
      Year--;
    }
    if (Month == 2) { // Checking the month if it's "February"
      Month = 14;
      Year--;
    }

    int DD = Day;
    int MM = Month;
    int yy = Year % 100;
    int YY = Year / 100;
    // Calculating the day
    int Calc = DD + 13 * (MM + 1) / 5 + yy + yy / 4 + YY / 4 + 5 * YY;

    Calc = Calc % 7; // Finding the day

    switch (Calc) {
      case 0:
        System.out.println("The day is: Saturday");
        break;
      case 1:
        System.out.println("The day is: Sunday");
        break;
      case 2:
        System.out.println("The day is: Monday");
        break;
      case 3:
        System.out.println("The day is: Tuesday");
        break;
      case 4:
        System.out.println("The day is: Wednesday");
        break;
      case 5:
        System.out.println("The day is: Thursday");
        break;
      case 6:
        System.out.println("The day is: Friday");
        break;
    }
  }

  // Our main class
  public static void main(String[] args) {
    ZellerCongruence(20, 9, 2022); // The date format is (dd/mm/yyyy)
  }
}

各行の目的についてはすでに説明しました。 したがって、上記のサンプル コードを実行すると、コンソールに以下の出力が表示されます。

The day is: Tuesday