这个C++程序哪有错啊~~~

来源:百度知道 编辑:UC知道 时间:2024/09/24 00:35:52
要实现的功能是我输入一个日期,然后自动输出那天是星期几。
我输入2009 9 25 输出结果居然是星期一……谁知道哪有错啊,帮忙挑一下啊~
#include <iostream>
using namespace std;
int main()
{
int n,y,r,i,sum,x;//n代表年 y代表月 r代表日 sum 代表总天数
cout<<"请一次输入生日的年月日";
cin>>n>>y>>r;
for(i=1,sum=0;i<=(n-1);i++)
{
if(( n%4==0 && n%100!=0 )||(n%400==0)) sum+=366;
else sum+=365;
}
if(( n%4==0 && n%100!=0 )||(n%400==0))
{
switch(y)
{
case 1:sum+=r;break;
case 2:sum+=r+31;break;
case 3:sum+=r+31+29;break;
case 4:sum+=r+31+29+31;break;
case 5:sum+=r+31+29+31+30;break;
case 6:sum+=r+31+29+31+30+31;break;
case 7:sum+=r+31+29+31+30+31+30;break;
case 8:sum+=r+31+29+31+30+31+30+31;break;
case 9:sum+=r+31+29+31+30+31+30+31+31;break;
case 10:sum+=r+31+29+31+30+31+30+31+31+30;break;
case 11:sum+=r+31+29+31+30+31+30+31+31+30+31;break;
case 12:s

你这算法是错的,因为公元纪年方式在历史上“丢失了若干天”。
所以在各种语言中,时间计算的初始时间一般是January 1, 1970 UTC,而不是公元1年1月1日。
你搜索一下就知道相关情况了。

程序本身就很有问题了。。

要知道是哪一天。。当然用一个leap变量存储是否闰年。。就是0 和 1两个值

在按照每个月的天数加起来就知道了,你写的太繁琐了,先理清楚思路吧

这程序太麻烦了,去搜搜蔡勒公式