打印

关于给定一个日期求星期几的算法实现讨论

[复制链接]
717|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
vivilzb1985|  楼主 | 2016-9-10 22:55 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
vivilzb1985|  楼主 | 2016-9-10 22:56 | 只看该作者
不多说了的,直接上程序算法实现的。。。

int getWDay(int year,int month,int day)
{
        struct tm tm1;
         time_t tm_t;
        tm1.tm_mday = day;                //day 为日
    tm1.tm_mon = month-1;             // month为月
    tm1.tm_year = year-1900;          // year 为年
    tm1.tm_hour = 0;
    tm1.tm_min = 0;
    tm1.tm_sec = 0;

     tm_t = mktime(&tm1);
     printf("%d", tm1.tm_wday);
/* */

        return 0;

}

使用特权

评论回复
板凳
vivilzb1985|  楼主 | 2016-9-10 22:57 | 只看该作者
少补了上边说的几个判断的

int checkDate(int year,int month,int day)
{
        if(year<1900)
        {
                return 0;
        }
        elseif(month<1||month>12)
                return 0;
        elseif(day<1||day>31)
                return 0;
        elseif((month==2||month==4||month==6||month==9||month==11)&&day==31)
                return 0;
        elseif((month==2)&&(day==30))
                return 0;
        elseif(month==2&&day==29)
        {
                if(((year%4==0)&&(year%100!=0))||year%400==0)
                        return 0;
        }
        return 1;
}

使用特权

评论回复
地板
vivilzb1985|  楼主 | 2016-9-10 22:58 | 只看该作者
main 函数的实现的:
int main()
{   
        int year,month,day;

        if(scanf("%d %d %d",&year,&month,&day)!=3)
        {
                return 0;
        }
       
        if(checkDate(year,month,day)==0)
        {
                return 0;
        }


        getWDay( year, month,day);

        return 0;
}
这样一来,这个条理就比较好的。。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:后来乍到,前辈们多多包涵了啊。。

88

主题

4276

帖子

6

粉丝