Anuario de Google
{
int source;
int SolarYear
int SolarMonth
int SolarDate
Período del calendario lunar;
Período del mes del calendario lunar;
int LunarDate
int día laborable;
int Kan< /p >
int Chih
};
unsigned _ _ int 64m _ ui 64 términos solares[24];
unsigned _ _ int 64m _ ui64 días del mes[13];
m_ui64 días del mes[0]= 0ui 64;
m_ui64 días del mes[1]= 31ui 64;
m_ui64 días del mes[2]= 28ui 64;
m_ui64 días del mes[3]= 31ui 64;
m_ui64 días del mes[4]= 30ui 64 ;
m _ ui64 días del mes[5]= 31ui 64;
m _ ui64 días del mes[6]= 30ui 64;
m _ ui64 días del mes[7]= 31ui 64;
m_ui64 días del mes[8]= 31ui 64;
m_ui64 días del mes[9]= 30ui 64;
m_ui64 días del mes[10]= 31ui 64 ;
m_ui 64 días del mes[11]= 30ui 64;
m_ui64 días del mes[12] = 31ui 64;
m _ ui 64 solarterms[0 ]= 0ui 64;
m _ ui 64 solarterms[1]= 21208 ui 64;
m _ ui 64 solarterms[2]= 42467 ui 64;
m _ ui 64 solarterms[3]= 63836 ui 64;
m _ ui 64 solarterms[4]= 85337 ui 64
m _ ui 64 solarterms[5] = 107014ui 64;
m _ ui 64 solarterms[6]= 128867 ui 64;
m _ ui 64 solarterms[7]= 150921ui 64;
m _ ui 64 solarterms[8]= 173149 ui 64;
m _ ui 64 solarterms[9]= 195551ui 64
m _ ui 64 solarterms[10]= 218072 ui 64;
m _ ui 64 términos solares[11]= 240693 ui 64;
m _ ui 64 términos solares[12]= 263343 ui 64; _ ui 64 solarter
ms[13]= 285989 ui 64;
m _ ui 64 solarterms[14]= 308563 ui 64;
m _ ui 64 solarterms[15]= 331033 ui 64;
m_ui 64 solarterms[16]= 353350 ui 64;
m_ui 64 solarterms[17]= 375494 ui 64; solarterms[18]= 397447 ui 64;
m _ ui 64 solarterms[19]= 419210ui 64
m _ ui 64 solarterms[20]= 440795 ui 64; p>
p>
m _ ui 64 solarterms[21]= 462224 ui 64;
m _ ui 64 solarterms[22]= 483532 ui 64; m _ ui 64 solarterms [23]= 504758 ui 64;
/* Cálculo de 24 términos solares*/
int _ _ la llamada rápida es el año bisiesto (int iYear)
{
Si ((iYear amp3) != 0)
{
Devuelve 0;
} p>
si no (iAño 100! = 0)
{
Devuelve 1;
}
si no ( iAño 400 == 0)
{
Devolver 1
}
Otros
{ p>
Devuelve 0;
}
}
int _ _ llamada rápida TheSolarTerm(int iYear, int n)
{
unsigned _ _ int 64k;
unsigned _ _ int 64 ddate _ utc = 22085493000000 ui 64;
unsigned __int64 doffdate, dadddate
fecha de salida = m _ ui 64 solarterms[n]* 600000 ui 64;
fecha de salida = static _ cast lt; _ int64 gt(iYear-1900)* 315569259747 ui 64;
fecha de salida-= ddate_utc;
fecha de salida/= 864000000 ui 64; //86400: 60 * 60 * 24 * 1000
int I = 1969 ;
p>dadddate = 0ui64
mientras(dadddate lt; doffdate)
{
i;
k = dadddate
dadd fecha = 365 ui 64 static _ cast lt unsigned _ _ int64 gt(IsLeapYear(I)
));
};
if(dadddate gt;doffdate)
{
int j = 0;
dadd fecha = k;
mientras(dadddate lt;doffdate amp ampj lt12)
{
j;
k = dadddate
dadd fecha = m_ui 64 días del mes[j];
if(j = = 2 amp; amp(IsLeapYear(i)!= 0))
p>
{
fecha del papá;
}
};
return static_cast ltint gt(fecha del papá - k 1ui 64);
}
else // j = doffdate
{
Devuelve 1;
}
}
int CalConv(struct ConvDate amp; CD)
{
int salto, d, sm, y , im, l1, l2, acc, I, lm, KC;
if (cd. Fuente == 0) /* Solar */
{
if (cd. SolarYear lt = primer año | | cd. SolarYear gt el año pasado)
{
Retorno 1;
}
sm = cd. mes solar-1;
if(sm lt; 0 | | sm gt11)
{
retorno 2;
}
salto = GetLeap(cd.año solar);
d = (sm == 1)? (Salto 28): solar cal[sm];
If (cd. SolarDate lt1 || cd. SolarDate gtd)
{
Return 3; /p>
}
y = cd. SolarYear - primer año;
acc = SolarDays[leap][sm] cd. FechaSolar
CD. Día laborable = (acc LunarCal[y]). día laborable base) 7;
kc = acc LunarCal[y]. BaseKanChih
CD. Kan = KC 10;
CD. chih = KC 12;
if(ACC lt; = LunarCal[y]. Fecha base)
{
y-;
CD. Año Lunar = cd. oreja solar-1
salto = GetLeap(cd.lunar año);
sm = 12
acc = SolarDays[leap][sm] cd; . SolarDate
}
Otro
{
CD. Año Lunar = cd.
AñoSolar
}
l1 = Cal Lunar[y]. día base;
for(I = 0; i lt13; i )
{
l2 = l1 LunarCal[y]. mes días[I] 29;
if(ACC lt; = l2)
{
descanso;
}
l 1 = L2;
}
CD. mes lunar = I 1;
CD. fecha lunar = ACC-l 1;
im = LunarCal[y]. intercalación;
if (im!= 0 amp amp disc. LunarMonth gt im)
{
disc. mes lunar-;
if (cd. LunarMonth == im)
{
CD. mes lunar = -im;
}
}
if (cd. LunarMonth gt12)
{
CD. mes lunar-= 12;
}
}
else /* Lunar */
{
if (cd. LunarYear lt primer año | | cd. LunarYear gt = año pasado)
{
Retorno 1;
}
y = cd. Año Nuevo Lunar - Año 1;
im = LunarCal[y]. intercalación;
lm = cd. Mes Lunar
if(lm lt; 0)
{
if (lm!= -im)
{
devolver 2;
}
}
si no(lm lt; 1 | | lm gt; 12)
{
devuelve 2;
}
si (¡estoy!= 0)
{
si( lm gt; mensaje instantáneo)
{
lm ;
}
si no (lm == -im)
{
lm = soy 1;
}
}
lm-;
if (cd. LunarDate gtLunarCal[y]. Días en el mes [lm] 29)
{
devuelve 3;
}
cuenta = LunarCal[y]. día base;
for(I = 0; i ltlm; i )
{
acc = LunarCal[y]. mes días[I] 29;
}
acc = cd. LunarDate
salto = GetLeap(cd.año lunar);
for(I = 13; i = 0; i -)
{
if(ACC gt; días solares[salto][i])
{
Descanso;
}
}
CD.
fecha solar = ACC-días solares[salto][I];
if (i lt= 11)
{
CD. AñoSolar = cd. Año Lunar
CD. mes solar = I 1;
}
Otro
{
CD. AñoSolar = cd. año lunar 1;
CD. mes solar = I-11;
}
salto = GetLeap(cd. año solar); SolarYear - primer año;
acc = SolarDays[leap][cd. Mes Solar - 1] cd. FechaSolar
CD. Día laborable = (acc LunarCal[y]). día laborable base) 7;
kc = acc LunarCal[y]. BaseKanChih
CD. Kan = KC 10;
CD. chih = KC 12;
}
Devuelve 0;
}