Utilice lenguaje c para describir el período de horario de verano
El lenguaje C usa time(NULL) para obtener la hora actual;
No importa en qué zona horaria o país se encuentre, el valor de retorno de time(NULL) es exactamente el mismo , porque es igual a
hora UTC, el número de segundos desde las 0:00 del 1 de enero de 1970 hasta el presente.
El cálculo de la hora local implica zona horaria. China utiliza el Octavo Distrito Este y la diferencia horaria local es UTC+8 horas.
La fecha del último domingo de marzo de cada año está relacionada con el año.
La fecha del último domingo de octubre de cada año está relacionada con el año.
Calcule el día del mes inicial y el día del mes final.
Cuando tu tiempo está entre el principio y el final, es horario de verano, configura la tecla=1.
=======
Lo siguiente es lo siguiente: calcule el mes y día inicial y final de cada año y conviértalo a JD (el día del año).
Puede obtener la hora actual usted mismo y ajustar YMD_2_JD a obtener JD_now,
if (JD_now < jd2 && JD_now > jd) clave =1;else clave=0;
=========
#include
#include
#include
int YMD_2_WeekDay(int Y, int M, int D){
int offset,jd,weekD;
offset = ((Y-1)+(Y-1)/4-(Y-1) /10(Y-1)/400) % 7;
jd = YMD_2_JD(Y,M,D);
semanaD = (jd + compensación) % 7;
regresar semanaD;
}
int YMD_2_JD(int Y, int M, int D){
const short MonthDay[]= {0,31,28,31,30,31 ,30,31,31,30,31,30,31};
int JD,i;
JD=D ;
for (i= 0;i if (((Y%4==0)&&(Y%100 !=0)||(Y%400== 0)) && (M>2)) JD++ return JD; } int; main() { int Y=2015,M=3,D=31,M2=10,D2=31; ,jd,jd2; wd = YMD_2_WeekDay(A,M,D); wd2 = YMD_2_WeekDay(A,M2,D2); D= D-wd; D2 =D2-wd2; printf("fecha: %d %d\n",D,D2); jd =YMD_2_JD(Y,M,D); jd2 = YMD_2_JD(Y,M2,D2); printf("J día: %d %d\n" ,jd,jd2); return 0; } /* time(NULL); obtiene tiempo transcurrido desde las 00:00 horas del 1 de enero de 1970 UTC */