三天打鱼两天晒网

#include<stdio.h>
#include<math.h>
typedef struct
{
    int year,month,day;
}Date;

int days(Date d)
{
    int i,total=0;
    int months[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};     /*设置数组months存放非闰年每月的天数*/
    months[2]=monthday(d.year);                                 /*调用monthday函数*/
    for(i=1;i<d.month;i++)                                      /*计算本年中自1月1日起的天数*/
        total+=months[i];
    total+=d.day;
    return total;
};

int monthday(int year)
{
    int mday;
    if((year%4==0&&year%100!=0)||(year%400==0))                 /*判断本年是平年还是闰年*/
        mday=29;
    else
        mday=28;
    return mday;
};

void display(Date t)
{
    Date term;
    int yearday,year,day;
    term.month=12;               /*设置变量的初始值:月*/
    term.day=31;                 /*设置变量的初始值:日*/
    for(yearday=0,year=2010;year<t.year;year++)
    {
        term.year=year;
        yearday+=days(term);     /*计算从2010年至指定年的前一年共有多少天*/
    }
    yearday+=days(t);       /*加上指定年中到指定日期的天数*/
    day=yearday%5;               /*求余数*/
    if(day>0&&day<4)
    {
        printf("he was fishing at that day.\n");   /*打印结果*/
        printf("\n");
    }
    else
    {
        printf("He was sleeping at that day.\n");
        printf("\n");
    }
}
    
int main()
{
    Date today;
    printf("Enter year/month/day:");
    scanf("%d%d%d",&today.year,&today.month,&today.day);  /*输入日期*/
    if((today.month>0)&&(today.month<=12)&&(today.day>0)&&(today.day<=31)&&(today.month==1||today.month==3||today.month==5||today.month==7||today.month==8||today.month==10||today.month==12))
    {
        printf("Your input is correct!\n");
        display(today);
    }
    else if((today.month>0)&&(today.month<=12)&&(today.month==2)&&((today.year%4==0&&today.year%100!=0)||(today.year%400==0))&&(today.day>0)&&(today.day<=29))
    {
        printf("Your input is correct!\n");
        display(today);
    }
    else if((today.month>0)&&(today.month<=12)&&(today.month==2)&&((today.year%4!=0)||(today.year%400!=0))&&(today.day>0)&&(today.day<=28))
    {
        printf("Your input is correct!\n");
        display(today);
    }
    else if((today.month>0)&&(today.month<=12)&&(today.day>0)&&(today.day<=30)&&(today.month==4||today.month==6||today.month==9||today.month==11))
    {
        printf("Your input is correct!\n");
        display(today);
    }
    else
    {
        printf("your input is error!\n");
        printf("please enter the correct format!\n");
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值