蔡勒公式

import java.util.Scanner;
public class Main {
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
int day = sc.nextInt();
int month = sc.nextInt();
int year = sc.nextInt();
System.out.println(dayOfTheWeek(day,month,year));
}
//蔡勒公式
public String dayOfTheWeek(int day, int month, int year) {
String[] arr = new String[]{"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"};
if(month < 3){ //这年的1、2月看成去年的13、14月
month += 12;
year -= 1;
}
int c = year/100; //年份前两位
year %= 100; //年份后两位
int D = c/4 - 2*c + year + year/4 + 13*(month+1)/5 + day - 1 + 7000000;//加个7的倍数以免D小于零
return arr[D%7];
}
}
该程序采用蔡勒公式实现输入日期后计算出对应星期的功能。用户通过Scanner输入年、月、日,程序会根据给定的蔡勒公式进行计算,并返回星期的英文名称。程序将1月和2月视为上一年的13月和14月,以确保算法的准确性。
1114

被折叠的 条评论
为什么被折叠?



