取名字好难-_- 2022-03-13 15:09 采纳率: 58.3%
浏览 83

c++:今天星期几?

img


//在这里给出函数被调用进行测试的例子:
#include <iostream>
#include <string>
using namespace std;

string week[] = {"Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"};

struct Calendar{
    int year;
    int month;
    int day;
    int weekday;//注:星期天为0,星期一为1,...,星期六为6;01-1-1为星期四
    int fromInitDays();
    void setValue(int y,int m,int d);
    void show();

};
int main()
{
    Calendar birthday;
    int y,m,d;
    cin>>y>>m>>d;
    birthday.setValue(y,m,d);
    cout<<birthday.fromInitDays()<<endl;
    birthday.show();
    return 0;
}
int Calendar::fromInitDays()
{
    int sum=0,i,j;
    for(i=1;i<year;i++){
        if((i%4==0&&i%100!=0)||(i%400==0))
            sum+=366;
        else sum+=365;    
    }
    for(j=1;j<month;j++){
        if(j==2){
            if((year%4==0&&year%100!=0)||(year%400==0))
                sum+=29;
            else sum+=28;    
        }
        else if(j==1||j==3||j==5||j==8||j==10||j==12||i==7)
        {
            sum+=31;
            }
        else {
            sum+=30;
        }        
    }
    sum+=day-1;
    if(sum>577724){
    
        sum=sum-10;
    }
    weekday=(sum+4)%7;
    return sum;    
}
void Calendar::setValue(int xx,int yy,int zz)
{
    //cout<<this->fromInitDays() <<endl;
    if(xx<1) year=1;
    else year=xx;
    if(yy<1) month=1;
    else if(yy>12) month=12;
    else month=yy;
    if(zz<1) day=1;
    else if(zz>31) day=31;
    else day=zz; 
    //cout<<year<<month<<day<<endl;
 } 
void Calendar::show() 
{
    cout<<year<<"-"<<month<<"-"<<day<<":"<<week[weekday]<<endl;
}

请问这个哪错了啊?输入1582 10 4,1582 10 15,2000 15 50的总天数答案少了一天。

  • 写回答

2条回答 默认 最新

  • _GX_ 2022-03-13 16:39
    关注

    sum+=day-1;改为sum+=day;

    评论

报告相同问题?

问题事件

  • 创建了问题 3月13日

悬赏问题

  • ¥15 程序实在不会写,要秃了
  • ¥15 pycharm导入不了自己的包
  • ¥15 C#.net通过内网url地址获取文件并下载问题,浏览器postman可以正常下载,用程序不行
  • ¥15 本人本科机械,目前研一。没有深度学习基础,目前对研究生课题一片迷茫,请教各位!
  • ¥15 关于R语言单因素与多因素线性回归的平均值
  • ¥15 服务器清除BIOS之后引导不了
  • ¥15 CPLEX用OPL编写的混合整数线性优化问题。
  • ¥15 可以用EasyConnect连接实验室内网,但无法连接内网才能访问的服务器,为什么?
  • ¥15 前端预览docx文件,文件从后端传送过来。
  • ¥15 层次聚类和蛋白质相似度