⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 time.c

📁 PDA程序开发PDA程序开发PDA程序开发PDA程序开发PDA程序开发PDA程序开发PDA程序开发PDA程序开发
💻 C
📖 第 1 页 / 共 2 页
字号:
/*1973*/ 5,20,4,19,6,21,5,20,5,21,6,21,7,23,8,23,8,23,8,23,7,22,7,22,
/*1974*/ 6,20,4,19,6,21,5,20,6,21,6,22,7,23,8,23,8,23,9,24,8,23,7,22,
/*1975*/ 6,21,4,19,6,21,5,21,6,22,6,22,8,23,8,24,8,23,9,24,8,23,8,22,
/*1976*/ 6,21,5,19,5,20,4,20,5,21,5,21,7,23,7,23,7,23,8,23,7,22,7,22,
/*1977*/ 5,20,4,19,6,21,5,20,5,21,6,21,7,23,7,23,8,23,8,23,7,22,7,22,
/*1978*/ 6,20,4,19,6,21,5,20,6,21,6,22,7,23,8,23,8,23,8,24,8,23,7,22,
/*1979*/ 6,21,4,19,6,21,5,21,6,21,6,22,8,23,8,24,8,23,9,24,8,23,8,22,
/*1980*/ 6,21,5,19,5,20,4,20,5,21,5,21,7,23,7,23,7,23,8,23,7,22,7,22,
/*1981*/ 5,20,4,19,6,21,5,20,5,21,6,21,7,23,7,23,8,23,8,23,7,22,7,22,
/*1982*/ 6,20,4,19,6,21,5,20,6,21,6,22,7,23,8,23,8,23,8,24,8,22,7,22,
/*1983*/ 6,20,4,19,6,21,5,20,6,21,6,22,8,23,8,24,8,23,9,24,8,23,8,22,
/*1984*/ 6,21,4,19,5,20,4,20,5,21,5,21,7,22,7,23,7,23,8,23,7,22,7,22,
/*1985*/ 5,20,4,19,5,21,5,20,5,21,6,21,7,23,7,23,8,23,8,23,7,22,7,22,
/*1986*/ 5,20,4,19,6,21,5,20,6,21,6,22,7,23,8,23,8,23,8,24,8,22,7,22,
/*1987*/ 6,20,4,19,6,21,5,20,6,21,6,22,7,23,8,24,8,23,9,24,8,23,7,22,
/*1988*/ 6,21,5,19,5,20,4,20,5,21,5,21,7,22,7,23,7,23,8,23,7,22,7,21,
/*1989*/ 5,20,4,19,5,20,5,20,5,21,6,21,7,23,7,23,7,23,8,23,7,22,7,22,
/*1990*/ 5,20,4,19,6,21,5,20,6,21,6,21,7,23,8,23,8,23,8,24,8,22,7,22,
/*1991*/ 6,20,4,19,6,21,5,20,6,21,6,22,7,23,8,23,8,23,9,24,8,23,7,22,
/*1992*/ 6,21,4,19,5,20,4,20,5,21,5,21,7,22,7,23,7,23,8,23,7,22,7,21,
/*1993*/ 5,20,4,18,5,20,5,20,5,21,6,21,7,23,7,23,7,23,8,23,7,22,7,22,
/*1994*/ 5,20,4,19,6,21,5,20,6,21,6,21,7,23,8,23,8,23,8,23,7,22,7,22,
/*1995*/ 6,20,4,19,6,21,5,20,6,21,6,22,7,23,8,23,8,23,9,24,8,23,7,22,
/*1996*/ 6,21,4,19,5,20,4,20,5,21,5,21,7,22,7,23,7,23,8,23,7,22,7,21,
/*1997*/ 5,20,4,18,5,20,5,20,5,21,5,21,7,23,7,23,7,23,8,23,7,22,7,22,
/*1998*/ 5,20,4,19,6,21,5,20,6,21,6,21,7,23,8,23,8,23,8,23,7,22,7,22,
/*1999*/ 6,20,4,19,6,21,5,20,6,21,6,22,7,23,8,23,8,23,9,24,8,23,7,22,
/*2000*/ 6,21,4,19,5,20,4,20,5,21,5,21,7,22,7,23,7,23,8,23,7,22,7,21,
/*2001*/ 5,20,4,18,5,20,5,20,5,21,5,21,7,23,7,23,7,23,8,23,7,22,7,22,
/*2002*/ 5,20,4,19,6,21,5,20,6,21,6,21,7,23,8,23,8,23,8,23,7,22,7,22,
/*2003*/ 6,20,4,19,6,21,5,20,6,21,6,22,7,23,8,23,8,23,9,24,8,23,7,22,
/*2004*/ 6,21,4,19,5,20,4,20,5,21,5,21,7,22,7,23,7,23,8,23,7,22,7,21,
/*2005*/ 5,20,4,18,5,20,5,20,5,21,5,21,7,23,7,23,7,23,8,23,7,22,7,22,
/*2006*/ 5,20,4,19,6,21,5,20,5,21,6,21,7,23,7,23,8,23,8,23,7,22,7,22,
/*2007*/ 6,20,4,19,6,21,5,20,6,21,6,22,7,23,8,23,8,23,9,24,8,23,7,22,
/*2008*/ 6,21,4,19,5,20,4,20,5,21,5,21,7,22,7,23,7,22,8,23,7,22,7,21,
/*2009*/ 5,20,4,18,5,20,4,20,5,21,5,21,7,23,7,23,7,23,8,23,7,22,7,22,
/*2010*/ 5,20,4,19,6,21,5,20,5,21,6,21,7,23,7,23,8,23,8,23,7,22,7,22,
/*2011*/ 6,20,4,19,6,21,5,20,6,21,6,22,7,23,8,23,8,23,8,24,8,23,7,22,
/*2012*/ 6,21,4,19,5,20,4,20,5,20,5,21,7,22,7,23,7,22,8,23,7,22,7,21,
/*2013*/ 5,20,4,18,5,20,4,20,5,21,5,21,7,22,7,23,7,23,8,23,7,22,7,22,
/*2014*/ 5,20,4,19,6,21,5,20,5,21,6,21,7,23,7,23,8,23,8,23,7,22,7,22,
/*2015*/ 6,20,4,19,6,21,5,20,6,21,6,22,7,23,8,23,8,23,8,24,8,22,7,22,
/*2016*/ 6,20,4,19,5,20,4,19,5,20,5,21,7,22,7,23,7,22,8,23,7,22,7,21,
/*2017*/ 5,20,3,18,5,20,4,20,5,21,5,21,7,22,7,23,7,23,8,23,7,22,7,22,
/*2018*/ 5,20,4,19,6,21,5,20,5,21,6,21,7,23,7,23,8,23,8,23,7,22,7,22,
/*2019*/ 5,20,4,19,6,21,5,20,6,21,6,21,7,23,8,23,8,23,8,24,8,22,7,22,
/*2020*/ 6,20,4,19,5,20,4,19,5,20,5,21,6,22,7,22,7,22,8,23,7,22,7,21,
/*2021*/ 5,20,3,18,5,20,4,20,5,21,5,21,7,22,7,23,7,23,8,23,7,22,7,21,
/*2022*/ 5,20,4,19,5,20,5,20,5,21,6,21,7,23,7,23,7,23,8,23,7,22,7,22,
/*2023*/ 5,20,4,19,6,21,5,20,6,21,6,21,7,23,8,23,8,23,8,24,8,22,7,22,
/*2024*/ 6,20,4,19,5,20,4,19,5,20,5,21,6,22,7,22,7,22,8,23,7,22,6,21,
/*2025*/ 5,20,3,18,5,20,4,20,5,21,5,21,7,22,7,23,7,23,8,23,7,22,7,21,
/*2026*/ 5,20,4,18,6,20,5,20,5,21,5,21,7,23,7,23,7,23,8,23,7,22,7,22,
/*2027*/ 5,20,4,19,6,21,5,20,6,21,6,21,7,23,8,23,8,23,8,23,7,22,7,22,
/*2028*/ 6,20,4,19,5,20,4,19,5,20,5,21,6,22,7,22,7,22,8,23,7,22,6,21,
/*2029*/ 5,20,3,18,5,20,4,20,5,21,5,21,7,22,7,23,7,23,8,23,7,22,7,21,
/*2030*/ 5,20,4,18,5,20,5,20,5,21,5,21,7,23,7,23,7,23,8,23,7,22,7,22,
/*2031*/ 5,20,4,19,6,21,5,20,6,21,6,21,7,23,8,23,8,23,8,23,7,22,7,22,
/*2032*/ 6,20,4,19,5,20,4,19,5,20,5,21,6,22,7,22,7,22,8,23,7,22,6,21,
/*2033*/ 5,20,3,18,5,20,4,20,5,21,5,21,7,22,7,23,7,23,8,23,7,22,7,21,
/*2034*/ 5,20,4,18,5,20,5,20,5,21,5,21,7,23,7,23,7,23,8,23,7,22,7,22,
/*2035*/ 5,20,4,19,6,21,5,20,5,21,6,21,7,23,7,23,8,23,8,23,7,22,7,22,
/*2036*/ 6,20,4,19,5,20,4,19,5,20,5,21,6,22,7,22,7,22,8,23,7,22,6,21,
/*2037*/ 5,20,3,18,5,20,4,20,5,21,5,21,7,22,7,23,7,23,8,23,7,22,7,21,
/*2038*/ 5,20,4,18,5,20,5,20,5,21,5,21,7,23,7,23,7,23,8,23,7,22,7,22,
/*2039*/ 5,20,4,19,6,21,5,20,5,21,6,21,7,23,7,23,8,23,8,23,7,22,7,22,
/*2040*/ 6,20,4,19,5,20,4,19,5,20,5,21,6,22,7,22,7,22,8,23,7,22,6,21,
/*2041*/ 5,20,3,18,5,20,4,20,5,20,5,21,7,22,7,23,7,22,8,23,7,22,7,21,
/*2042*/ 5,20,4,18,5,20,4,20,5,21,5,21,7,23,7,23,7,23,8,23,7,22,7,22,
/*2043*/ 5,20,4,19,6,21,5,20,5,21,6,21,7,23,7,23,8,23,8,23,7,22,7,22,
/*2044*/ 6,20,4,19,5,20,4,19,5,20,5,21,6,22,7,22,7,22,7,23,7,22,6,21,
/*2045*/ 5,20,3,18,5,20,4,19,5,20,5,21,7,22,7,23,7,22,8,23,7,22,7,21,
/*2046*/ 5,20,4,18,5,20,4,20,5,21,5,21,7,23,7,23,7,23,8,23,7,22,7,22,
/*2047*/ 5,20,4,19,6,21,5,20,5,21,6,21,7,23,7,23,8,23,8,23,7,22,7,22,
/*2048*/ 6,20,4,19,5,20,4,19,5,20,5,20,6,22,7,22,7,22,7,23,7,21,6,21,
/*2049*/ 5,19,3,18,5,20,4,19,5,20,5,21,6,22,7,22,7,22,8,23,7,22,7,21,
};

/*≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡
□---根据农历年份得到干支纪年字符串-------
≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡*/
void GetGzYearStr(short MoonTimeYear,unsigned char *pStr)
{
	const unsigned char *p;
	p=&MCTG[(MoonTimeYear%10)*2];
	*pStr++=*p++;
	*pStr++=*p++;
	p=&MCDZ[(MoonTimeYear%12)*2];
	*pStr++=*p++;
	*pStr++=*p++;
	*pStr=0;
}

/*≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡
□---计算是否节气日期-------
≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡*/
unsigned char * GetSolarterm(PDATIME *pSunTime)
{
	unsigned char *buf;
	short offset;
	offset=(pSunTime->year-1950)*24+(pSunTime->month-1)*2;
	buf=(unsigned char *)SolartermStore+offset;
	if(pSunTime->day==buf[0]||pSunTime->day==buf[1])
	{
		offset=pSunTime->month*2;
		if(pSunTime->day<15)offset-=2;else offset--;
		return (unsigned char *)SolartermStr[offset];
	}
	else return NULL;
}
/*≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡
□---计算农历日期-------
≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡*/
void GetMonthCalendar(const PDATIME *pSunTime,PDATIME *pMoonTime)
{
	unsigned char str[4],str1[2];
	unsigned short i,j,c_month,c_day,r_month,beforflags;
	unsigned short y_days,l_days,days,month;
	unsigned short Status;/*农历闰月标志*/
	unsigned short Rmonth;/*农历闰月月份*/
	short addr;
	unsigned char *s;
	r_month=0;
	beforflags=0;
	i=pSunTime->year-1949;
	s=(unsigned char *)MCNewyear;
	str[0]=s[i];
	c_month=str[0]/100;	/*春节的月份*/
	c_day=str[0]%100;	/*春节的天数*/

	pMoonTime->year=pSunTime->year-1901;

	addr=i*2;
	if(pSunTime->month<c_month||(pSunTime->month==c_month&&pSunTime->day<c_day)) 
	{
		addr-=2;/*日期在春节日子前*/
		beforflags=1;
	}
	if(beforflags==0) pMoonTime->year++;/*农历年*/
	pMoonTime->year%=60;

	s=(unsigned char *)MCTable+addr;
	str[0]=s[0];str[1]=s[1];
	if(str[0]&0x80)
	{
		s=s-2;
		str1[0]=s[0];
		r_month=((str[0]>>4)&0x03)*8+((str1[0]>>4)&0x07);/*闰月*/
		Rmonth=r_month;
	}
	for(i=0;i<2;i++)
	{
		if(i==0) month=pSunTime->month;
		else month=c_month;
		switch(month)
		{
		case 1:	days=0;break;
		case 2: days=31;break;
		case 3: days=59;break;
		case 4: days=90;break;
		case 5: days=120;break;
		case 6: days=151;break;
		case 7: days=181;break;
		case 8: days=212;break;
		case 9: days=243;break;
		case 10: days=273;break;
		case 11: days=304;break;
		case 12: days=334;break;
		}
		if(month>2)if(GetMonthMaxDay(pSunTime->year,2)==29) days++;
		if(i==0)y_days=days;
		else l_days=days;
	}
	Status=0;
	if(beforflags)/*比春节日期小*/
	{
		days=(l_days+c_day)-(y_days+pSunTime->day);/*距春节的天数*/
		pMoonTime->month=12;
		if(r_month!=0) j=7;
		else j=4;
		i=0;
		while(i<2)
		{
			if((str[i]>>(j-1))&0x01) month=30;
			else month=29;
			if(days<=month) break;
			if(Status==1) Status=0;
			if(pMoonTime->month!=r_month) pMoonTime->month--;
			else if(pMoonTime->month==r_month)
			{
				Status=1;r_month=0;
			}
			days-=month;
			j--;
			if(i==0&&j==6)j=4;
			else if(j==0){i++;j=8;}
		}
		pMoonTime->day=month-days+1;
	}
	else
	{
		pMoonTime->month=1;
		days=(y_days+pSunTime->day)-(l_days+c_day)+1;/*距春节的天数*/
		for(i=2,j=0;i>0;)
		{
			if((str[i-1]>>j)&0x01) month=30;
			else month=29;
			if(Status==2&&pMoonTime->month==Rmonth)Status=1;
			else Status=0;
			if(days<=month) break;
			if(pMoonTime->month!=r_month) (pMoonTime->month)++;
			else
			{
				Status=2;r_month=0;
			}
			days-=month;
			j++;
			if(i==2&&j>7) {i--;j=0;}
			else
			{
				if(i==1&&j==4) j=6;
				else if(i==1&&j>6){i--;j=0;}
			}
		}
		pMoonTime->day=days;
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -