/* 算法如下:
基姆拉尔森计算公式
W= (d+2*m+3*(m+1)/5+y+y/4-y/100+y/400) mod 7
在公式中d表示日期中的日数+1,m表示月份数,y表示年数。
注意1:在公式中有个与其他公式不同的地方:
把一月和二月看成是上一年的十三月和十四月,
例:如果是2004-1-10则换算成:2003-13-10来代入公式计算。
注意2:在大多数天主教国家的日历中,在1752年没有9.3-9.13,在这一年的日历中9月2号
后面直接就是9月14号,所以在计算某天是星期几的算法中要把这一特殊情况考虑在内。
如果在在1752年9月3日之前
week = (d+2*m+3*(m+1)/5+y+y/4+5)%7;
如果不是
week = (d+2*m+3*(m+1)/5+y+y/4-y/100+y/400)%7;
*/
#include<iostream>
#include<string>
using namespace std;
int CaculateWeekDay(int y,int m,int d){
int a;
// 1月2月当作前一年的13,14月
if(m==1||m==2){
m += 12;
y--;
}
//判断是否在1752年9月3号之前
if(y<1752||(y==1752&&m<9)||(y==1752&&m==9&&d<3)){
a = (d+2*m+3*(m+1)/5+y+y/4+5)%7;
}
else {
a = (d+2*m+3*(m+1)/5+y+y/4-y/100+y/400)%7;
}
return a;
}
const char *name[]={"monday","tuesday","wednesday","thursday"
,"friday","saturday","sunday"};
int main(){
int y,m,d;
while( cin >> y >> m >> d){
cout << name[CaculateWeekDay(y,m,d)] << endl;
}
system("pause");
}
分享到:
相关推荐
11. 求某一天星期几:通过计算日期与基准日期的差值,结合蔡勒公式,可以确定指定日期是星期几。 12. 卡特兰 (Catalan) 数列:该数列在组合数学中有多种生成函数和递推关系,可以用来解决诸如括号匹配等问题。 13....
- 求解星期几的问题。 - 树状数组和左偏树。 - Trie树的两种实现方式,一种是K叉树,另一种是左儿子右兄弟表示法。 - 后缀数组的两种构建方法。 - RMQ(Range Minimum/Maximum Query)问题的不同解决算法。 - LCA...
该算法可以计算某一天是星期几,用于解决日期计算中的某些问题。ACM 算法模板库中提供了相关的算法模板,用于实现求某一天星期几。 ACM 算法模板库提供了各种常用的算法模板,为算法爱好者和竞赛选手提供了便捷的...
图论 3 连通性 3 强连通分量 3 割点/割边 7 点/边双联通 9 最短路 && 查分约束 11 Dijkstra 11 SPFA 13 Floyd_Wallshall 14 次短路 15 查分约束 16 ...求某天是星期几 72 扩栈 73 JAVA 73 builtin函数 74
求某一天星期几** - **描述**:根据日期计算出具体是星期几。 - **应用**:日历功能、时间管理等领域。 **3. 求排列组合数** - **描述**:计算特定条件下的排列组合数。 - **应用**:概率论、组合数学等领域。...
- **求某天是星期几**:根据给定日期计算出是星期几。 - **左偏树合并复杂度O(LOGN)**:一种平衡二叉查找树,支持高效合并操作。 - **树状数组**:也称作二叉索引树,用于高效查询和更新数值。 - **二维树状数组**:...
1. **日期计算**:涉及到计算某一天是一周中的第几天,这需要理解如何计算从年初到这一天总共经过了多少天,再通过取模运算得到星期几。 - **非闰年计算**:对于非闰年,可以预设每个月的天数,并加上年份的天数...
13. 求某一天星期几:实现了某一天星期几的计算,使用了 Zeller 公式。 字符串处理 1. 字符串替换:实现了字符串替换的计算,使用了字符串操作。 2. 字符串查找:实现了字符串查找的计算,使用了字符串操作。 3. ...
##### 求某天是星期几 可以通过Zeller公式或其他类似的方法来计算某一天是星期几。 ##### 左偏树合并复杂度O(logN) 左偏树是一种自平衡二叉查找树,通过旋转操作来保持树的平衡,从而确保合并操作的时间复杂度为O...
9. **求某一天星期几**:可能需要实现日期处理算法,如蔡勒公式。 **字符串处理** 1. **字符串替换**:通过查找并替换字符串中的特定子串。 2. **字符串查找**:找到字符串中目标子串的位置。 3. **字符串截取**...
11. **求某一天星期几**:通常使用蔡勒公式,根据日期和年份计算出对应的星期。 **字符串处理** 1. **字符串替换**:涉及到字符串的遍历和字符替换。 2. **字符串查找**:可以使用KMP算法或Boyer-Moore算法等高效...