/* 算法如下:
基姆拉尔森计算公式
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...
- **求某天是星期几**:根据日期计算出对应的星期几。 - **左偏树合并复杂度O(LOGN)**:一种特殊的二叉查找树,支持高效的合并操作。 - **树状数组**:一种简单的数据结构,支持在一维数组中高效地进行查询和更新...
该算法可以计算某一天是星期几,用于解决日期计算中的某些问题。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公式或其他方法计算。 - **注意事项**: 注意闰年的处理。 ### 字符串处理 #### 1. 字符串替换 - **...
1. **求某天是星期几**:通过给定的日期计算出对应的星期几。 2. **左偏树合并复杂度O(LOGN)**:左偏树是一种平衡二叉查找树,支持高效地合并操作。 3. **树状数组/二维树状数组**:用于维护数组区间操作的数据结构...
##### 求某天是星期几 可以通过Zeller公式或其他类似的方法来计算某一天是星期几。 ##### 左偏树合并复杂度O(logN) 左偏树是一种自平衡二叉查找树,通过旋转操作来保持树的平衡,从而确保合并操作的时间复杂度为O...
- **求某天是星期几**:根据日期计算星期几。 - **左偏树合并复杂度O(LOGN)**:实现左偏树的数据结构及其操作。 - **树状数组**:一种支持快速查询和更新的一维数组。 - **二维树状数组**:树状数组的二维扩展,支持...
9. **求某一天星期几**:可能需要实现日期处理算法,如蔡勒公式。 **字符串处理** 1. **字符串替换**:通过查找并替换字符串中的特定子串。 2. **字符串查找**:找到字符串中目标子串的位置。 3. **字符串截取**...
求某天是星期几** - **定义**: 根据给定的日期计算星期几。 - **实现**: 通过蔡勒公式或其它日期算法实现。 **2. 左偏树合并复杂度O(LOGN)** - **定义**: 左偏树是一种自平衡的二叉搜索树。 - **实现**: 通过...
##### 3.1 求某天是星期几(Weekday Calculation) - **定义**: 根据给定日期计算对应的星期几。 - **应用场景**: 日历程序、时间管理等。 - **算法步骤**: - 使用Zeller公式或其他算法进行计算。 ##### 3.2 左偏树...
##### 3.1 求某天是星期几** - **定义**: 计算给定日期对应的星期几。 - **算法**: 使用Zeller公式或其他日期计算方法。 ##### 3.2 左偏树合并复杂度O(LOGN)** - **定义**: 左偏树是一种自平衡二叉搜索树。 - **...
11. **求某一天星期几**:通常使用蔡勒公式,根据日期和年份计算出对应的星期。 **字符串处理** 1. **字符串替换**:涉及到字符串的遍历和字符替换。 2. **字符串查找**:可以使用KMP算法或Boyer-Moore算法等高效...