计算某年某月某日是该年第几天

#include<stdio.h>
#include<math.h>
#include<string.h>

struct Date{
    int year;
    int month;
    int day;
};


int RunYear(int year);
int CountDay(struct Date date);
int main(){
    struct Date date;
    printf("input year month and day:");
    scanf("%d %d %d",&date.year,&date.month,&date.day);
    printf("result is %d",CountDay(date));
}

int RunYear(int year){
    int isRunYear=0;
    if(year%4==0&&year%100!=0){
        isRunYear=1;
    }

    if(year%400==0)
        isRunYear=1;


    return isRunYear;
}

int CountDay(struct Date date){
    int isRunYear=(RunYear(date.year));
    int day=0;
    int DayInMonth[12]={31,28,31,30,31,30,31,31,30,31,30,31};
    for(int i=0;i<date.month-1;i++)
        day+=DayInMonth[i];

        day+=date.day;

    if(isRunYear&&date.month>2)
        day++;


    return day;
}
posted @ 2024-05-24 15:21  zhongta  阅读(41)  评论(0)    收藏  举报