1、编写一个函数,功能为输入某年某月某日,判断这一天是这一年的第几天。2、 编写一个函数,功能是计算出某年的第某天的日期(年月日格式),例如,计算2014年的第100天日期是多少2

写在前面:目前还没学数组,学完来更新!

1、编写一个函数,功能为输入某年某月某日,判断这一天是这一年的第几天。

#include<iostream>
using namespace std;
int main()
{
    int a, b, c,m,x;//a,b,c为年月日
    cout << "请输入年、月、日" << endl;
    cin >> a >> b >> c;
    if (a % 4 == 0&&a%100!=0||a%400==0)
        x = 29;//x为2月份天数
    else
        x = 28;//判断是否是闰年
    switch (b)
    {
    case 1:m = c; break;//m为第几天
    case 2:m = 31 + c; break;
    case 3:m = 31 + x + c; break;
    case 4:m = 62+ x + c; break;
    case 5:m = 92 + x + c; break;
    case 6:m = 123+ x + c; break;
    case 7:m = 153 + x + c; break;
    case 8:m = 184 + x + c; break;
    case 9:m = 215 + x + c; break;
    case 10:m = 245 + x + c; break;
    case 11:m = 276 + x + c; break;
    case 12:m = 306 + x + c; break;
    }
    cout << "是第" << m << "天";
    return 0;
}

2、编写一个函数,功能是计算出某年的第某天的日期(年月日格式),例如,计算2014年的第100天日期是多少(结果为2014年4月10日)

#include<iostream>
using namespace std;
int main()
{
    int a, b, x,m,n,p;//a,b是年,天数,x为2月份天数,n为日期
    cout << "请输入年份、天数" << endl;
    cin >> a >> b;
    if (a % 4 == 0 && a % 100 != 0 || a % 400 == 0)//判断是否为闰年
        x = 29;
    else
        x = 28;
    m = 1;//m为对应月份
    p = b / 30;
    /*想法:除去2月,其余月最少有30天,输入的天数除以30就能判断有几个整月,再加m(m = 1), 即这个天数所在的月份,
    但要注意12月*/
    if (b <= 31)
    {
        n = b;
        m++;
    }
    else if (b <= 31 + x) { n = b - 31; m=m+p; }
    else if (b <= 62 + x) { n = b - 31 - x; m=m+p; }
    else if (b <= 92 + x) { n = b - 62 - x; m=m+p; }
    else if (b <= 123 + x) { n = b - 92 - x; m=m+p; }
    else if (b <= 153 + x) { n = b - 123 - x;m=m+p; }
    else if (b <= 184 + x) { n = b - 153 - x;m= m+p; }
    else if (b <= 215 + x) { n = b - 184 - x; m=m+p; }
    else if (b <= 245 + x) { n = b - 215 - x; m=m+p; }
    else if (b <= 276 + x) { n = b - 245 - x; m=m+p; }
    else if (b <= 306 + x) { n = b - 276 - x; m=m+p; }
    else if (b < 360) { n = b - 306 - x; m = m + p; }
    /*当天数小于360时,除以30取整数是11,而360之后取整数是12,应该从这再分情况*/
    else if (b <= 337 + x) { n = b - 306 - x; m=p; }
    
        cout << a << "年" << m << "月" << n << "日" << endl;
    return 0;
}

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值