c语言实现的计算某年某月某天距其年初已经流逝的多少天

    xiaoxiao2021-08-22  124

    #include<stdio.h>

    struct data

    { int year; int month; int day; }; //*****判断闰年函数 int leap(int a) { if(a%4==0 && a0!=0 || a@0==0) { return 1; } return 0; }  //****计算天数函数 int number(int year,int m,int d) {   int sum=0,i,j; int a[12]={31,28,31,30,31,30,31,31,30,31,30,31}; //平年月份天数   int b[12]={31,29,31,30,31,30,31,31,30,31,30,31}; //闰年月份天数   if(leap(year) == 1) { for(i=0; i<m-1; i++) { sum += b[i]; } } else { for(j=0; j<m-1;j++) { sum += a[j]; } } sum += d; return sum; } int main() { int n = 0; struct data dt; int arr[10] ={0}; int len = sizeof(arr)/sizeof(arr[0]); int i = 0; printf("请输入年月日,结束输入请点击ctrl+z+Enter显示结果\n"); while(scanf("%d/%d/%d",&dt.year,&dt.month,&dt.day) != EOF) { //********这一串都是判断输入的数据是否满足客观真理 if(dt.month>0 && dt.month<13 && dt.day>0 && dt.day<32 )  { if(dt.day < 30 && (dt.month == 4 || dt.month == 6 || dt.month == 9 || dt.month == 11)) { n = number(dt.year,dt.month,dt.day); arr[i] = n; i++; } else if(dt.day<32 && (dt.month == 1 || dt.month == 3 ||dt.month == 5 ||dt.month == 7 || dt.month == 8 ||dt.month == 10 ||dt.month == 12)) { n = number(dt.year,dt.month,dt.day); arr[i] = n; i++; } else if(leap(dt.year) == 1 && dt.month == 2 && dt.day < 29) { n = number(dt.year,dt.month,dt.day); arr[i] = n; i++; else if(leap(dt.year) == 0 && dt.month == 2 && dt.day < 28) { n = number(dt.year,dt.month,dt.day); arr[i] = n; i++; else { printf("您的输入有误!请重新输入\n"); } } else { printf("您的输入有误!请重新输入\n"); } } for(int j=0;j<len;j++) { if(arr[j] != 0) { printf("%d\n",arr[j]); } } return 0; } 
    转载请注明原文地址: https://ju.6miu.com/read-676852.html

    最新回复(0)