Red de conocimientos turísticos - Conocimientos sobre calendario chino - ¿Qué significa el siguiente código? ilustrar

¿Qué significa el siguiente código? ilustrar

Para registrar el número de días entre el Festival de Primavera y el Día de Año Nuevo de ese año, consulte:

Este programa está compilado bajo DEV C 4.9.9.2

Los siguientes artículos están relacionados con el calendario lunar:

Código C de cálculo para el número de días de la semana en un día determinado

Introducción a los algoritmos y fórmulas del calendario lunar

Utilice el código C para calcular los tallos celestes y las ramas terrestres del calendario lunar chino int Spring_NY, Sun_NY, StaticDayCount;

int index, flag;

//Spring_NY registra el número de días entre el Festival de Primavera y el día de Año Nuevo de ese año.

//Sun_NY registra el número de días a partir del día de Año Nuevo en el calendario gregoriano.

if ( ((LunarCalendarTable[año-1901] & 0x0060) gt; gt; 5) == 1)

Spring_NY = (LunarCalendarTable[año-1901] & 0x001F ) - 1;

else

Spring_NY = (LunarCalendarTable[año-1901] y 0x001F) - 1 31

Sun_NY = MonthAdd [mes; -1] día - 1;

if ((!(año 4)) amp; amp; (mes gt; 2))

Sun_NY ;

//StaticDayCount registra el número de días en un mes grande o pequeño, 29 o 30

//index registra el mes en el que comienza el conteo.

//flag se utiliza especialmente para manejar los meses bisiestos.

// Determina si el día solar es antes o después del Festival de Primavera

if (Sun_NY gt; = Spring_NY)//El día solar es posterior al Año Nuevo Chino (incluido el Año Nuevo Chino día)

{

Sun_NY -= Spring_NY

mes = 1

índice = 1; > bandera = 0;

if ( ( (LunarCalendarTable[año - 1901] & (0x80000 gt; gt; (index-1)) == 0)

StaticDayCount = 29;

p>

else

StaticDayCount = 30

while(Sun_NY gt; = StaticDayCount)

{

Sun_NY -= StaticDayCount;

index;

if( mes == ((LunarCalendarTable[año - 1901] amp; 0xF00000) gt; gt; 20) )

{

bandera = ~bandera

if(bandera == 0)

mes ; > }

else

mes ;

if( ( ( LunarCalendarTable[año - 1901] & (0x80000 gt; gt; (index-1)) ) == 0)

StaticDayCount=29;

else

StaticDayCount=30

}

día; = Sun_NY 1;

}

else //El día solar antes del comienzo de la primavera

{

Spring_NY -= Sun_NY;

año --;

mes = 12;

if (((LunarCalendarTable[año - 1901] y 0xF00000) y 0xF00000) gt; gt 20) == 0)

índice = 12;

más

índice = 13

bandera = 0; p>

if ( ((LunarCalendarTable[año - 1901] & (0x80000 gt; gt; (index-1)) == 0)

StaticDayCount = 29;

else

StaticDayCount = 30

while(Spring_NY gt; StaticDayCount)

{

Spring_NY -= StaticDayCount

índice-- ;

si(bandera == 0)

m

onth --;

if(mes == ((LunarCalendarTable[año - 1901] & 0xF00000) gt; gt; 20))

flag = ~flag;

if ( ( LunarCalendarTable[año - 1901] amp; (0x80000 gt; gt; (index-1)) == 0)

StaticDayCount = 29;

else

StaticDayCount = 30;

}

día = StaticDayCount - Spring_NY 1; día;

LunarCalendarDay |= (mes lt; lt; 6);

if (mes == ((LunarCalendarTable[año - 1901] & 0xF00000) gt; gt; 20))

devuelve 1;

más

devuelve 0;

}

principal()

{

const char *ChDay[] = {"*", "Primer día de escuela secundaria", "Segundo día de escuela secundaria", "Tercer día de escuela secundaria", "Cuarto día de la escuela secundaria", "Quinto día de la escuela secundaria",

"El sexto día del mes lunar", "El séptimo día del mes lunar", "El octavo día del mes lunar ", "El noveno día del mes lunar", "El décimo día del mes lunar",

"Undécimo día", "Duodécimo día", "Decimotercero día", "Catorce", "Quince ",

"Dieciséis", "Diecisiete", "Dieciocho", "Diecinueve", "Veinte",

"Veintiuno", "Veintidós", "Veinte -tres", "Veinticuatro", "Veinticinco",

"Veintiséis", "Veintisiete", "Veintiocho", "Veintinueve" ","Treinta "};

const char *ChMonth[] = {"*","正""二","三","四","五","六", "siete", " ocho", "nueve", "diez", "once", "cera"};

struct tm * Local;

long t;

long t;

p>

int año, mes, día;

char str[13] = ""; 0

t = hora(NULL);

Local = hora local(amp; t

año = tm_año 1900; >

mes = Local-gt ;tm_mon 1;

int año, mes, día

día = Local-gt;

#else

año = 2006;

mes = 9;

día = 9;

printf("d año d mes d día\t", año, mes, día);

if(LunarCalendar(año, mes, día))

{

strcat(cadena, "Salto");

p>

strcat(str, ChMonth[(LunarCalendarDay amp.0x3C0) gt; gt; 6]);

}

else

strcat( str, ChMonth[(LunarCalendarDay amp; 0x3C0) gt; gt; 6]);

strcat(str, "mes");

strcat(str, ChDay[LunarCalendarDay amp; 0x3F]);

puts(str);

system("pausa");

}

.lvyouzhishi.com" target="_blank">Red de conocimientos turísticos All Rights Reserved.