第十二周项目一 当年第几天

来源:互联网 发布:什么软件照相好看 编辑:程序博客网 时间:2024/05/18 03:03
/*标题    ;计算天数
*Copyright(c)2013,烟台大学计算机学院*All rights reserved。*作者    :刘江*完成日期:2013年11月13日*版本号  :v1.0*问题描述:*样例输入:*样例输出:问题分析:*/#include <iostream>using namespace std;int date(int x,int y,int z)//年月日{    int t=0,d=0;    if((x%4==0 && x%100!=0 )||x%400==0)    {        d=29;//闰年        switch(y)        {        case 1:            t=z;            break;        case 3:            t=31+d+z;            break;        case 5:            t=31*2+d+z+30;            break;        case 7:            t=31*3+d+z+30*2;            break;        case 8:            t=31*4+d+z+30*2;            break;        case 10:            t=31*5+d+z+30*3;            break;        case 12:            t=31*6+d+z+30*4;            break;        case 4:            t=z+31*2+d;            break;        case 6:            t=30+d+z+31*3;            break;        case 9:            t=31*5+d+z+30*2;            break;        case 11:            t=31*6+z+30*3+d;            break;        case 2:            t=31+z;            break;        }        return t;    }    else    {        d=28;        switch(y)        {        case 1:            t=z;            break;        case 3:            t=31+d+z;            break;        case 5:            t=31*2+d+z+30;            break;        case 7:            t=31*3+d+z+30*2;            break;        case 8:            t=31*4+d+z+30*2;            break;        case 10:            t=31*5+d+z+30*3;            break;        case 12:            t=31*6+d+z+30*4;            break;        case 4:            t=z+31*2+d;            break;        case 6:            t=30+d+z+31*3;            break;        case 9:            t=31*5+d+z+30*2;            break;        case 11:            t=31*6+z+30*3+d;            break;        case 2:            t=31+z;            break;        }    }}int main( ){    int x,y,z,t;    cout<<"请输入年月日"<<endl;    cin>>x>>y>>z;    t=date(x,y,z);    cout<<"今天是本年第"<<t<<"天"<<endl;    return 0;}运行结果:
心得体会:不能对z的取值范围做出规定!