2012.2 今天是2012年4月12日星期四,编写程序,输入今天开始到12月31日之间的任意日期

//今天是2012年4月12日星期四,编写程序,输入今天开始到12月31日之间的任意日期,
    //输出那一天是星期几。例如 输入:5 20 (5月20),输出:sunday
    //monday tuesday wedsday thursday friday saturday sunday

    //思路,每个月有30和31天,区分开来。构造结构体,其中有日期,以及对应周几。
    //1 3 5 7 8 10 12 月份是31 天
    // 6 9 11 月份30天
    //一周7天。
    //要计算的问天变为:这一个天离4.9(周一)日过了几天。7x+y=n,可以得到余数y。
    #include<iostream>
    using namespace std;
    int main()
    {
        int m,d;//分别对应月份,日期。
        cin>>m>>d;
        int i,j,days,sum=0;
        int day[12]={31,28,31,30,31,30,31,31,30,31,30,31};
        char zhou[7][10]={"monday","tuesday","wedsday","thursday","friday","saturday","sunday"};
        if(m==4) days=d-9;
        else
        {
        for(i=5;i<=m;i++)
        {
            sum+=day[i-2];//四月到本月前一个月的月份天数相加。


        }
        days=sum-9+d;

        }

        j=days%7;

        cout<<zhou[j]<<endl;







    }

下面是使用Python实现NextDate函数的代码: ```python def NextDate(year, month, day): # 判断输入日期是否合法 if year < 1812 or year > 2012 or month < 1 or month > 12 or day < 1 or day > 31: return "输入日期不合法" # 判断是否为闰 leap_year = False if year % 4 == 0 and year % 100 != 0 or year % 400 == 0: leap_year = True # 判断每的天数 if month == 2: if leap_year: days_in_month = 29 else: days_in_month = 28 elif month in [4, 6, 9, 11]: days_in_month = 30 else: days_in_month = 31 # 判断下一个日期 if day < days_in_month: return year, month, day + 1 elif month < 12: return year, month + 1, 1 else: return year + 1, 1, 1 ``` 下面是使用Python编写的测试用例: ```python import unittest from NextDate import NextDate class TestNextDate(unittest.TestCase): def test1(self): self.assertEqual(NextDate(2022, 2, 28), (2022, 3, 1)) def test2(self): self.assertEqual(NextDate(2022, 2, 29), "输入日期不合法") def test3(self): self.assertEqual(NextDate(2022, 6, 30), (2022, 7, 1)) def test4(self): self.assertEqual(NextDate(2022, 12, 31), (2023, 1, 1)) def test5(self): self.assertEqual(NextDate(2022, 13, 1), "输入日期不合法") if __name__ == '__main__': unittest.main() ``` 在上面的代码中,我们定义了一个TestNextDate类来测试NextDate函数的功能,其中test1、test2、test3、test4和test5分别测试了输入日期为228、229、6301231和131时的下一个日期。如果测试用例执行没有出现错误,则说明NextDate函数实现正确。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值