Y:年
M:月
d:日
weekday返回值 0:星期天
1:星期一
..................
适用于1582年10月15日之后,因为罗马教皇格里高利十三世在这一天启用新历法。
import java.util.HashMap;
import java.util.Scanner;
public class 求某一天星期几 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int Y = sc.nextInt();
int M = sc.nextInt();
int d = sc.nextInt();
HashMap<Integer, String> map = new HashMap<>();
map.put(0, "星期天");
map.put(1, "星期一");
map.put(2, "星期二");
map.put(3, "星期三");
map.put(4, "星期四");
map.put(5, "星期五");
map.put(6, "星期六");
int index = weekday(Y, M, d);
System.out.println(map.get(index));
}
public static int weekday(int Y,int M,int d) {
if(3 > M) {
M += 12;
Y--;
}
int w = ((d + 2*M + 3*(M + 1)/5 + Y + Y / 4 - Y / 100 + Y / 400)% 7 + 1 )% 7;
return w;
}
}