设计一个程序,对于从键盘输入年月日,计算出对应是星期几

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/08 05:20:42
设计一个程序,对于从键盘输入年月日,计算出对应是星期几

设计一个程序,对于从键盘输入年月日,计算出对应是星期几
设计一个程序,对于从键盘输入年月日,计算出对应是星期几

设计一个程序,对于从键盘输入年月日,计算出对应是星期几
星期几的算法有以下两种:
W=[Y-1]+[(Y-1)/4]-[(Y-1)/100]+[(Y-1)/400]+D
Y是年份,D是这一天在这一年中的累积天数,也就是这一天在这一年中是第几天.
W=[C/4]-2C+y+[y/4]+[13*(m+1)/5]+d-1
C是世纪数减1
y是年份后两位
M是月份,d是日数
1月和2月要按上一年的13月和14月来算,这时C和y均按上一年取值
两个公式中的[]均指只取整数部分
算出来的W余几就是星期几,0=日
参考例子:(测试正确)
#include
bool IsLeapYear(int nYear)
{
return ((!(nYear % 4) && nYear % 100) || !(nYear % 400));
}
int CalcWeekday(int nYear,int nMonth,int nDay)
{
/*
W=[Y-1]+[(Y-1)/4]-[(Y-1)/100]+[(Y-1)/400]+D
Y是年份,D是这一天在这一年中的累积天数,也就是这一天在这一年中是第几天.
*/
int DT[] = {1,4,4,0,2,5,0,3,6,1,4,2};
int nDayIn = (nMonth > 2) ((IsLeapYear(nYear) (DT[nMonth - 1] + 1) :DT[nMonth - 1])) :DT[nMonth - 1];
int nWeekday = (nYear - 1 + (nYear - 1)/4 - (nYear - 1)/100 + (nYear - 1)/400 + nDayIn) % 7;
// 算出本月第一天为星期几
nWeekday = (nWeekday < 0) (nWeekday + 7) :nWeekday;
// 返回该天为星期几
return (nWeekday + nDay - 1) % 7;
}
int main()
{
int nYear,nMonth,nDay;
char arrDayName[][25] = {"Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"};
printf("Year Month Day:");
scanf("%d %d %d",&nYear,&nMonth,&nDay);
printf("%d-%d-%d:%s\n",nYear,nMonth,nDay,arrDayName[CalcWeekday(nYear,nMonth,nDay)]);
return 0;
}
希望我的回答能对你有所帮助!
如果还有问题,可以BaiduHi我,!

设计一个程序,对于从键盘输入年月日,计算出对应是星期几 设计程序,实现从键盘输入n(0 VF,设计一个计算分段函数的程序,从键盘输入一个X,根据X计算函数的值Y=2-1 (x 设计一个java程序,从键盘输入三个整数,按照从小到大的顺序输出 c++设计一个程序 从键盘输入10个数,找出其中的最大值和最小值 C语言 编写程序,从键盘输入一个正数,计算该数的平方根. 设计程序,计算表达式(3A+2B) *C的值,其中A`B`C的值从键盘输入 设计一个C ++程序,从键盘输入a b c 三个整数,将他们从大到小依次输出 设计一个程序,从键盘输入一个圆的半径,求其周长和面积………… 4.计算表达式的值求用C++类做的代码对于给定的一个表达式,表达式中可以包括常数、算术运行符(“+”、“-”、“*”、“/”)和括号,编写程序计算表达式的值.基本要求:从键盘输入一个 用c++编写 计算表达式的值 对于给定的一个表达式,表达式中可以包括常数、算术运行符(“+”、“-”、“*”、“/”)和括号,编写程序计算表达式的值.基本要求:从键盘输入一个正确的中 一、 编写程序,从键盘输入一个整数N(N 用C语言编写一个程序:从键盘输入n(0 编写程序,从键盘输入一个正整数,计算该数的各个位数字之和,并显示结果. C语言 从键盘输入一个简单的数学表达式,计算并显示该表达式的值 求算法和程序 编写一个程序,从键盘输入圆的半径,计算该半径对应的周长,面积,球的表面积和体积? Visual FoxPro.设计程序并标出运行结果.用键盘输入一个正整数N,并计算1,2,3,…,N的和 ,输出计算结 用Delphi设计一个程序,从键盘输入a,b,c3个整数,将它们按照从大到小的次序输出请用Delphi编写,运行成功后请截下图.