1. 程式人生 > 其它 >計算某天是星期幾

計算某天是星期幾

澤勒一致性


import java.util.*;
import javax.swing.*;  
  class Main {
    public static void main (String[] args){
      Scanner input = new Scanner(System.in);
      
      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 oneDayOfMonth = input.nextInt();
      
      if(month == 1 || month == 2){
        month += 12;
        year -= 1;
      }
      /*
      int daysOfMonth = 0;
      switch(month){
        case 13:
          daysOfMonth = 31;
          break;
        case 14:
          boolean isLeapYear = (year % 4 == 0 && year % 100 != 0) || (year % 400 == 0);
          daysOfMonth = isLeapYear ? 29 : 28;
          break;
        case 3:
          daysOfMonth = 31;
          break;
        case 4:
          daysOfMonth = 30;
          break;
        case 5:
          daysOfMonth = 31;
          break;
        case 6:
          daysOfMonth = 30;
          break;
        case 7:
          daysOfMonth = 31;
          break;
        case 8:
          daysOfMonth = 31;
          break;
        case 9:
          daysOfMonth = 30;
          break;
        case 10:
          daysOfMonth = 31;
          break;
        case 11:
          daysOfMonth = 30;
          break;
        case 12:
          daysOfMonth = 31;
          break;
      }
      */

      int dayOfWeek = (oneDayOfMonth + (int)((26 * (month + 1)) / 10) 
                       + (year % 100) + (int)((year % 100) / 4) 
                       + (int)((int)(year / 100) / 4) 
                       + 5 * (int)(year / 100)) % 7;

      String dayOfWeekString = "";
      switch(dayOfWeek){
        case 0:
          dayOfWeekString = "Saturday";
          break;
        case 1:
          dayOfWeekString = "Sunday";
          break;
        case 2:
          dayOfWeekString = "Monday";
          break;
        case 3:
          dayOfWeekString = "Tuesday";
          break;        
        case 4:
          dayOfWeekString = "Wednesday";
          break;
        case 5:
          dayOfWeekString = "Thursday";
          break;
        case 6:
          dayOfWeekString = "Friday";
          break; 
      }

      System.out.println("Day of the week is " + dayOfWeekString);
    }
  }