给你一个日期,请你设计一个算法来判断它是对应一周中的哪一天。
输入为三个整数:day、month 和 year,分别表示日、月、年。
您返回的结果必须是这几个值中的一个 {“Sunday”, “Monday”, “Tuesday”, “Wednesday”, “Thursday”, “Friday”, “Saturday”}。
使用 蔡勒公式!!!!!
即可快速解决。
对蔡勒公式不太熟悉的,可以翻阅百度百科:
if(month <= 2) { year -= 1 ; month += 12 }
w = (c / 4) - (2 * c) + y + y / 4 + ( 26 * (month + 1) / 10) + day - 1
( w % 7 + 7 )% 7
class Solution {
static String[] week = {"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"};
public String dayOfTheWeek(int day, int month, int year) {
// 格式化
if (month < 3) {
year -= 1;
month += 12;
}
int c = year / 100;
int y = year - 100 * c;
int w = c / 4 - 2 * c + y + y / 4 + (26 * (month + 1) / 10) + day - 1; // 蔡勒公式
w = (w % 7 + 7) % 7; // 避免正负数情况
return week[w];
}
}
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- oldu.cn 版权所有 浙ICP备2024123271号-1
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务