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

MD Aminul Islam 2023年10月12日
Java で Zellers Congruence を使用して曜日を見つける

この記事では、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
著者: MD Aminul Islam
MD Aminul Islam avatar MD Aminul Islam avatar

Aminul Is an Expert Technical Writer and Full-Stack Developer. He has hands-on working experience on numerous Developer Platforms and SAAS startups. He is highly skilled in numerous Programming languages and Frameworks. He can write professional technical articles like Reviews, Programming, Documentation, SOP, User manual, Whitepaper, etc.

LinkedIn

関連記事 - Java Date