第12周项目1--当年第几天

来源:互联网 发布:手机商品期货交易软件 编辑:程序博客网 时间:2024/05/17 08:23
/* * Copyright (c) 2013, 烟台大学计算机学院 * All rights reserved. * 作    者:沈远宏 * 完成日期:2013 年 11 月 12 日 * 版 本 号:v1.0 * 问题描述:输入年月日,输出 这一天为这一年的第几天。 * 问题分析:定义一个函数用来判断为第几天,在main函数中输入年月日并调用函数求值,最后在main函数中输出结果。             要先判读该年份是否为闰年,然后根据月份算这是第几天。 * 输入:2012 12 31 * 输出:2012年12月31日为该年的第366天。 */#include <iostream>using namespace std;int time(int,int,int);int main(){    int year,month,date,day;    cout<<"请依次输入年、月、日:"<<endl;    cin>>year>>month>>date;    day=time(year,month,date);    cout<<year<<"年"<<month<<"月"<<date<<"日"<<"为该年的第"<<day<<"天"<<endl;    return 0;}int time(int a,int b,int c){    int x;    if((a%4)==0&&(a%100)!=0)    {        switch(b)        {            case 1:x=c;break;            case 2:x=31+c;break;            case 3:x=31+29+c;break;            case 4:x=31+29+31+c;break;            case 5:x=31+29+31+30+c;break;            case 6:x=31+29+31+30+31+c;break;            case 7:x=31+29+31+30+31+30+c;break;            case 8:x=31+29+31+30+31+30+31+c;break;            case 9:x=31+29+31+30+31+30+31+31+c;break;            case 10:x=31+29+31+30+31+30+31+31+30+c;break;            case 11:x=31+29+31+30+31+30+31+31+30+31+c;break;            case 12:x=31+29+31+30+31+30+31+31+30+31+30+c;break;        }    }else    {       switch(b)        {            case 1:x=c;break;            case 2:x=31+c;break;            case 3:x=31+28+c;break;            case 4:x=31+28+31+c;break;            case 5:x=31+28+31+30+c;break;            case 6:x=31+28+31+30+31+c;break;            case 7:x=31+28+31+30+31+30+c;break;            case 8:x=31+28+31+30+31+30+31+c;break;            case 9:x=31+28+31+30+31+30+31+31+c;break;            case 10:x=31+28+31+30+31+30+31+31+30+c;break;            case 11:x=31+28+31+30+31+30+31+31+30+31+c;break;            case 12:x=31+28+31+30+31+30+31+31+30+31+30+c;break;        }    }    return x;}


运行结果:

心得体会:

用了switch 语句发现好长一串啊。