24小时热门版块排行榜    

查看: 1574  |  回复: 9
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

我爱小虫子

新虫 (正式写手)

[交流] 疑惑:一道C++的小程序,不理解 已有4人参与

求一个日期对应的星期几
(这是在JAVA书上看到的,我把它转成了C++),但是,里面的一个语句(total=year-1980+(year-1980+3)/4)不懂是在干什么,求大神解答。。。。。自己感觉应该是(total=(year-1980)*365+(year-1980+3)/4).。。。你们觉得呢,我哪里理解错了吗


#include<iostream>
using namespace std;

void main()
{
        int year=2006,month=8,day=18,total,week,i;
        bool leap=false;
        leap=(year%400==0)||(year%100!=0)&&(year%4==0);
        week=1;                                               //起始日1979-12-31是Monday
        total=(year-1980)+(year-1980+3)/4;                    //求平(闰)年累计的总天数
        for(i=1;i<=month-1;i++)
        {
                switch(i)
                {
                case 1:
                case 3:
                case 5:
                case 7:
                case 8:
                case 10:
                case 12: total+=31;break;
                case 4:
                case 6:
                case 9:
                case 11:total+=30;break;
                case 2:
                        if(leap) total+=29;
                        else     total+=28;
                        break;


                }
        }

        total+=day;
        week=(week+total)%7;

        cout<<"date "<<year<<"-"<<month<<"-"<<day<<" is ";
        switch(week)
        {
        case 0: cout<<"Sunday"<<endl; break;
        case 1: cout<<"Monday"<<endl; break;
        case 2: cout<<"Tuesday"<<endl; break;
        case 3: cout<<"Wednesday"<<endl; break;
        case 4: cout<<"Thursday"<<endl; break;
        case 5: cout<<"Friday"<<endl; break;
        case 6: cout<<"Saturday"<<endl; break;
        }
}
回复此楼

» 本帖已获得的红花(最新10朵)

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

我爱小虫子

新虫 (正式写手)

引用回帖:
2楼: Originally posted by laohuajiang at 2014-01-09 15:03:00
http://hi.baidu.com/hypatia9202/item/0ccecc846395b6d8d1f8cda9

非常感谢,。。。顿时感觉这个语句好高深,。。。但是,我还是想不明白,对于,2000,2100,这个两个年份它是怎么做到的,我知道,对于2000,在计算2001~2003的时候,累加了2000这个闰年,
对于2100,在计算2101~2103的时候,没有累加2100,因为它是平年,我就是想不明白,它是怎么做到能区分2000,和2100这种年份的
3楼2014-01-09 17:12:21
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 10 个回答

laohuajiang

至尊木虫 (职业作家)

老花匠


小木虫: 金币+0.5, 给个红包,谢谢回帖
静坐常思自己过,闲谈莫论他人非!---老花匠(老非老-春残意彷徨;花非花-芳踪觅繁华,匠非匠-最美难得糊涂!)
2楼2014-01-09 15:03:00
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

虾仁拉面

金虫 (初入文坛)


小木虫: 金币+0.5, 给个红包,谢谢回帖
引用回帖:
3楼: Originally posted by 我爱小虫子 at 2014-01-09 17:12:21
非常感谢,。。。顿时感觉这个语句好高深,。。。但是,我还是想不明白,对于,2000,2100,这个两个年份它是怎么做到的,我知道,对于2000,在计算2001~2003的时候,累加了2000这个闰年,
对于2100,在计算 ...

楼主可以找一下公历的表示法
leap=(year%400==0)||(year%100!=0)&&(year%4==0);
这句就是判断是否闰年
4楼2014-01-13 00:14:50
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

我爱小虫子

新虫 (正式写手)

引用回帖:
4楼: Originally posted by 虾仁拉面 at 2014-01-13 00:14:50
楼主可以找一下公历的表示法
leap=(year%400==0)||(year%100!=0)&&(year%4==0);
这句就是判断是否闰年...

谢谢你,你说的这个我是知道的,我纠结 的不是这句啊,是
(total=year-1980+(year-1980+3)/4),,,看了个二楼贴的网址,有点明白,但是还是又有我提出来的这个疑惑,希望大神能给出解释解释
5楼2014-01-13 08:55:23
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
普通表情 高级回复 (可上传附件)
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 求调剂院校信息 +4 CX 330 2026-03-21 4/200 2026-03-21 23:48 by ms629
[考研] 306求0703调剂一志愿华中师范 +5 纸鱼ly 2026-03-21 5/250 2026-03-21 17:11 by 学员8dgXkO
[考研] 材料与化工(0856)304求 B区 调剂 +3 邱gl 2026-03-21 3/150 2026-03-21 13:47 by lature00
[考研] 330求调剂0854 +3 assdll 2026-03-21 3/150 2026-03-21 13:01 by 搏击518
[考研] 材料学学硕080502 337求调剂-一志愿华中科技大学 +4 顺顺顺mr 2026-03-18 5/250 2026-03-21 10:22 by luoyongfeng
[考研] 一志愿山大07化学 332分 四六级已过 本科山东双非 求调剂! +3 不想理你 2026-03-16 3/150 2026-03-21 03:59 by JourneyLucky
[考研] 307求调剂 +3 wyyyqx 2026-03-17 3/150 2026-03-21 03:20 by JourneyLucky
[考研] 271材料工程求调剂 +8 .6lL 2026-03-18 8/400 2026-03-21 00:58 by JourneyLucky
[考研] 一志愿武汉理工材料工程专硕调剂 +9 Doleres 2026-03-19 9/450 2026-03-20 22:36 by JourneyLucky
[考研] 085600材料与化工 +8 安全上岸! 2026-03-16 8/400 2026-03-20 22:13 by luoyongfeng
[考研] 329求调剂 +9 想上学吖吖 2026-03-19 9/450 2026-03-20 22:01 by luoyongfeng
[考研] 0817 化学工程 299分求调剂 有科研经历 有二区文章 +22 rare12345 2026-03-18 22/1100 2026-03-20 20:39 by zhukairuo
[考研] 材料学求调剂 +4 Stella_Yao 2026-03-20 4/200 2026-03-20 20:28 by ms629
[考研] 08工学调剂 +5 用户573181 2026-03-20 5/250 2026-03-20 15:47 by xia_2003
[考研] 085410人工智能专硕317求调剂(0854都可以) +4 xbxudjdn 2026-03-18 4/200 2026-03-20 09:07 by 不168
[考研] 081700化工学硕调剂 +3 【1】 2026-03-16 3/150 2026-03-19 23:40 by edmund7
[考研] 材料与化工求调剂 +7 为学666 2026-03-16 7/350 2026-03-19 14:48 by 尽舜尧1
[考博] 26博士申请 +3 1042136743 2026-03-17 3/150 2026-03-17 23:30 by 轻松不少随
[论文投稿] 有没有大佬发小论文能带我个二作 +3 增锐漏人 2026-03-17 4/200 2026-03-17 09:26 by xs74101122
[考研] 321求调剂 +5 大米饭! 2026-03-15 5/250 2026-03-16 16:33 by houyaoxu
信息提示
请填处理意见