栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

zoj 1256 What Day Is It?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

zoj 1256 What Day Is It?

#include<iostream>#include<string>#include<cstdio>using namespace std;const string weeks[]={"Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"};const string months[]={"January","February","March","April","May","June","July","August","September","October","November","December"};const int cnt[2][12]={   31,28,31,30,31,30,31,31,30,31,30,31,   31,29,31,30,31,30,31,31,30,31,30,31};int leapyear(int y){    if(y%4==0&&y%100!=0||y%400==0)       return 1;    return 0;}int DayOfWeek(int M,int D,int Y){    if(M==1||M==2)    {        M+=12;        --Y;    }    if(Y<1752||(Y==1752&&M<9)||(Y==1752&&M==9&&D<3))       return(D+2*M+3*(M+1)/5+Y+Y/4+5)%7;    else       return (D+2*M+3*(M+1)/5+Y+Y/4-Y/100+Y/400)%7;}bool Check(int m,int d,int y){    if(!(m>=1&&m<13))       return false;    if(!(d>=1 && d<=cnt[leapyear(y)][m-1]))       return false;    if(y==1752&&m==9&&d>2&&d<14)       return false;    return true;}int main(void){    int m,d,y;    while(cin>>m>>d>>y,m+d+y)    {        if(Check(m,d,y))printf("%s %d, %d is a %sn",months[m-1].c_str(),d,y,weeks[DayOfWeek(m,d,y)].c_str());        elseprintf("%d/%d/%d is an invalid date.n",m,d,y);    }    return 0;}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/367086.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号