zoukankan      html  css  js  c++  java
  • 第十一周项目5-当年第几天

    定义一个函数,其参数为年、月、日的值,返回这一天为该年的第几天。要求在main函数中输入年月日,然后调用这个函数求值,并在main函数中输出结果。

    /*
     *Copyright (c) 2014,烟台大学计算机学院
     *All gight reserved.
     *文件名称:temp.cpp
     *作者:邵帅
     *完成时间:2014年11月5日
     *版本号:v1.0
    */
    #include <iostream>
    using namespace std;
    int main()
    {
        int day(int y, int x, int d);
        int year, month, cday;
        cout << "输入年-月-日:" ;
        cin >> year >> month >> cday;
        cout << "这是该年的第" << day(year, month, cday) << "天。" << endl;
        return 0;
    }
    
    int day(int y, int m, int d)
    {
        int sum;
        if ((y % 4 == 0 && y % 100 != 0) || (y % 400 == 0 && y % 100 == 0))
        {
            switch (m)
            {
    
            case 1:
                sum = d;
                break;
            case 2:
                sum = d + 31;
                break;
            case 3:
                sum = d + 60;
                break;
            case 4:
                sum = d + 91;
                break;
            case 5:
                sum = d + 121;
                break;
            case 6:
                sum = d + 152;
                break;
            case 7:
                sum = d + 182;
                break;
            case 8:
                sum =  d + 213;
                break;
            case 9:
                sum =  d + 244;
                break;
            case 10:
                sum = d + 274;
                break;
            case 11:
                sum =  d + 305;
                break;
            case 12:
                sum =  d + 335;
                break;
            }
        }
        else
        {
            switch (m)
            {
            case 1:
                sum = d;
                break;
            case 2:
                sum = d + 31;
                break;
            case 3:
                sum =  d + 59;
                break;
            case 4:
                sum =  d + 90;
                break;
            case 5:
                sum = d + 120;
                break;
            case 6:
                sum =  d + 151;
                break;
            case 7:
                sum =  d + 181;
                break;
            case 8:
                sum =  d + 212;
                break;
            case 9:
                sum =  d + 243;
                break;
            case 10:
                sum =  d + 273;
                break;
            case 11:
                sum = d + 304;
                break;
            case 12:
                sum =  d + 334;
                break;
            }
        }
      return sum;
    }

    运行结果:


    心得:说实话、因为考虑到闰年与平年,代码变得十分的冗长,明白会有更好的处理方法对于闰年的天数可以在平年的基础上(大于2月份)上+1,这样,代码会变得简洁明了,最重要的是,程序运行的效率会大大提高。

    更改后的代码:

    /*
     *Copyright (c) 2014,烟台大学计算机学院
     *All gight reserved.
     *文件名称:temp.cpp
     *作者:邵帅
     *完成时间:2014年11月5日
     *版本号:v1.0
    */
    #include <iostream>
    using namespace std;
    int main()
    {
        int day(int y, int x, int d);
        int year, month, cday;
        cout << "输入年-月-日:" ;
        cin >> year >> month >> cday;
        cout << "这是该年的第" << day(year, month, cday) << "天。" << endl;
        return 0;
    }
    
    int day(int y, int m, int d)
    {
        int sum;
    
        switch (m)
        {
        case 1:
            sum = d;
            break;
        case 2:
            sum = d + 31;
            break;
        case 3:
            sum =  d + 59;
            break;
        case 4:
            sum =  d + 90;
            break;
        case 5:
            sum = d + 120;
            break;
        case 6:
            sum =  d + 151;
            break;
        case 7:
            sum =  d + 181;
            break;
        case 8:
            sum =  d + 212;
            break;
        case 9:
            sum =  d + 243;
            break;
        case 10:
            sum =  d + 273;
            break;
        case 11:
            sum = d + 304;
            break;
        case 12:
            sum =  d + 334;
            break;
        }
        if ((y % 4 == 0 && y % 100 != 0) || (y % 400 == 0 && y % 100 == 0))
        {
            if (m>2)
                sum--;
        }
        return sum;
    }
    
    运行结果:



    @ Mayuko

  • 相关阅读:
    安装高版本的docker
    Apache JMeter汉化手册
    安装python包
    Jmeter Cluster
    doc下设置永久环境变量的好方法
    jmeter非常好的博客收藏
    mysql-学习链接
    python 脚本
    常见python快捷键
    2015年心情随笔--周围太烦躁,我想静静
  • 原文地址:https://www.cnblogs.com/mayuko/p/4567635.html
Copyright © 2011-2022 走看看