Langage C pour juger si une date est dans le jour de l'année explication du cas

Aujourd'hui, nous sommes le 11 avril 2023, nous utilisons donc aujourd'hui comme exemple pour connaître le jour en 2023.

Analyse d'idée

1) Nous voulons connaître le nombre de jours en 2023 que représente le 11 avril 2023. Il suffit de faire la somme des jours de janvier à mars et d'ajouter la date d'aujourd'hui, qui est le 11, pour calculer que le 11 avril 2023 est 2023 Le jour de l'année.

Promotion:

Pour calculer le jour d'un certain mois d'une certaine année, il vous suffit d'ajouter le nombre de jours des premiers mois d'un certain mois, puis d'ajouter le certain jour pour calculer que le certain mois et le certain jour d'une certaine année est un certain jour d'une certaine année Le nombre de jours; une formule peut être dérivée.

La formule pour calculer le jour d'un certain mois et un certain jour d'une certaine année est :

somme = la somme des jours des (N-1) mois précédents plus x, N signifie un certain mois et x signifie un certain jour.

2) Sauf que le nombre de jours en février est différent chaque année, le nombre de jours dans les 11 mois restants reste le même. Nous devons juger si une certaine année est une année bissextile ou une année normale, et l'utiliser pour déterminer si le nombre de jours en février est de 28 jours (année normale) ou 29 jours (année bissextile).

3) Il y a 31 jours en janvier, mars, mai, juillet, août, octobre et décembre chaque année.

     Il y a 30 jours en avril, juin, septembre et novembre chaque année.

     Il y a 29 jours en février les années bissextiles et 28 jours en février les années normales.

Le code de cas est le suivant

#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);
	}

}

Le résultat de l'exécution du code est le suivant

11 avril 2023 :

 8 août 2008 :

 

Acho que você gosta

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