Lenguaje C para juzgar si una fecha está en el día del año explicación del caso

Hoy es 11 de abril de 2023, por lo que usamos hoy como ejemplo para averiguar el día en 2023.

Análisis de ideas

1) Queremos saber la cantidad de días en 2023 que es el 11 de abril de 2023. Solo necesitamos sumar los días de enero a marzo y agregar la fecha de hoy, que es 11, para calcular que el 11 de abril de 2023 es 2023 El día del año.

Promoción:

Para calcular el día de un mes determinado y un año determinado en un año determinado, solo necesita sumar la cantidad de días en los primeros meses de un mes determinado y luego agregar el día determinado para calcular ese mes determinado y ese día determinado. de un año determinado es un día determinado en un año determinado El número de días, se puede derivar una fórmula.

La fórmula para calcular el día de un mes determinado y un día determinado de un año determinado es:

sum=la suma de los días en los meses anteriores (N-1) más x, N significa un mes determinado y x significa un día determinado.

2) Excepto que el número de días en febrero es diferente cada año, el número de días en los 11 meses restantes sigue siendo el mismo. Necesitamos juzgar si un año determinado es un año bisiesto o un año normal, y usarlo para determinar si el número de días en febrero es 28 días (año normal) o 29 días (año bisiesto).

3) Hay 31 días en enero, marzo, mayo, julio, agosto, octubre y diciembre de cada año.

     Hay 30 días en abril, junio, septiembre y noviembre de cada año.

     Hay 29 días en febrero en años bisiestos y 28 días en febrero en años normales.

El código del caso es el siguiente

#include <stdio.h>
#define N 12
void main(){
	int i,j;
	int year,month,day;
	int sum=0;
	int arr[N]={31,0,31,30,31,30,31,31,30,31,30,31};//2月的天数不确定就先定为0
	printf("输入年月日,用空格隔开");
	scanf("%d%d%d",&year,&month,&day);
	if((year%4==0&&year%100!=0)||year%400==0){
		arr[1]=29;
	}//判断某年是闰年还是平年用来确定2月份的天数
	else{//闰年2月有29天,平年2月有28天
		arr[1]=28;
	}
	for(i=0;i<month-1;i++){
		sum+=arr[i];/*假如想知道2023年4月11号是这2023年的第几天
		            先求出1月到3月的总天数*/
	}
	sum+=day;//1月到3月的总天数加上11就求出这一天是2023年的第几天
	if(arr[1]==28){
		printf("%d年是平年\n",year);
		printf("%d年%d月%d号是%d年的%d天",year,month,day,year,sum);
	}//打印输出2023年4月11号是2023年的第几天
	else{
		printf("%d年是闰年\n",year);
		printf("%d年%d月%d号是%d年的第%d天",year,month,day,year,sum);
	}

}

El resultado de ejecutar el código es el siguiente

11 de abril de 2023:

 8 de agosto de 2008:

 

Supongo que te gusta

Origin blog.csdn.net/weixin_63279307/article/details/130085736
Recomendado
Clasificación