Encuentre el día de la semana usando la congruencia de Zellers en Java

MD Aminul Islam 12 octubre 2023
Encuentre el día de la semana usando la congruencia de Zellers en Java

Este artículo muestra cómo podemos usar Java para implementar la congruencia de Zeller para encontrar el día de la semana. Además, veremos un ejemplo con una explicación línea por línea para facilitar el tema.

Encuentre el día de la semana usando la congruencia de Zeller en Java

Recuerda, el algoritmo que estamos usando en este artículo es contar el mes enero como 13 y el mes febrero como 14 del año anterior.

Por ejemplo, si una fecha es 13 de enero de 2009, el algoritmo la contará como el mes 13 de 2008. En la siguiente valla de código, demostraremos cómo encontrar el día de una semana.

Código de ejemplo:

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)
  }
}

Ya hemos descrito el propósito de cada línea. Por lo tanto, ejecutar el código de ejemplo anterior obtendrá el siguiente resultado en su consola.

The day is: Tuesday
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

Artículo relacionado - Java Date