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

📄 calendars.h

📁 使用C语言实现图文日历时钟
💻 H
字号:
/***************************************************************************
****************************************************************************/
// Calendar.h : header file
/////////////////////////////////////////////////////////////////////////////

#define HIWORD(l)   ((UINT16) (((UINT32) (l) >> 16) & 0xFFFF)) 
#define LOWORD(l)   ((UINT16) (l)&0xFFFF) 
#define HIBYTE(w)   ((UINT8) (((UINT16) (w) >> 8) & 0xFF)) 
#define LOBYTE(w)   ((UINT8) (w)&0xFF) 


   //判断iYear是不是闰年
    static BOOL CAL_IsLeapYear(UINT16 iYear)
	{return (BOOL)(!(iYear%4)&&(iYear%100) || !(iYear%400));}

	//计算iYear,iMonth,iDay对应是星期几 1年1月1日 --- 65535年12月31日
	static UINT16 CAL_WeekDay(UINT16 iYear, UINT16 iMonth, UINT16 iDay);

	//返回iYear年iMonth月的天数 1年1月 --- 65535年12月
	static UINT16 CAL_MonthDays(UINT16 iYear, UINT16 iMonth);

	//返回阴历iLunarYer年阴历iLunarMonth月的天数,如果iLunarMonth为闰月,
	//高字为第二个iLunarMonth月的天数,否则高字为0 
	// 1901年1月---2050年12月
	static UINT32 CAL_LunarMonthDays(UINT16 iLunarYear, UINT16 iLunarMonth);

	//返回阴历iLunarYear年的总天数
	// 1901年1月---2050年12月
	static UINT16 CAL_LunarYearDays(UINT16 iLunarYear);

	//返回阴历iLunarYear年的闰月月份,如没有返回0
	// 1901年1月---2050年12月
	static UINT16 CAL_GetLeapMonth(UINT16 iLunarYear);

	//把iYear年格式化成天干记年法表示的字符串
	static void CAL_FormatLunarYear(UINT16  iYear, UINT8 *pBuffer);

	//把iMonth格式化成中文字符串
	static void CAL_FormatMonth(UINT16 iMonth, UINT8 *pBuffer, BOOL);

    //把iDay格式化成中文字符串
	static void CAL_FormatLunarDay(UINT16  iDay, UINT8 *pBuffer);

	//计算公历两个日期间相差的天数  1年1月1日 --- 65535年12月31日
	static UINT32 CAL_CalcDateDiff(UINT16 iEndYear, UINT16 iEndMonth, UINT16 iEndDay);

	//计算公历iYear年iMonth月iDay日对应的阴历日期,返回对应的阴历节气 0-24
	//1901年1月1日---2050年12月31日
	static UINT16 CAL_GetLunarDate(UINT16 iYear, UINT16 iMonth, UINT16 iDay,
		                     UINT16* iLunarYear, UINT16* iLunarMonth, UINT16* iLunarDay);

	//计算从1901年1月1日过iSpanDays天后的阴历日期
	static UINT8   CAL_CalcLunarDate(UINT16* iYear, UINT16* iMonth,UINT16* iDay, UINT32 iSpanDays);
    //计算公历iYear年iMonth月iDay日对应的节气 0-24,0表不是节气
	static UINT16   CAL_GetLunarHolDay(UINT16 iYear, UINT16 iMonth, UINT16 iDay);
	BOOL   CAL_GetHoilday(UINT16, UINT16, UINT16, UINT16);
    void CAL_PaintChineseInfo(UINT16, UINT16, UINT16 iHolDay);


	void CAL_PaintTitle(T_OSGRect);
	void CAL_PaintDate(T_OSGRect);
	void CAL_PaintOneDay(  UINT16 *iDay, 
		                        UINT16 *iLunarYear,
		                        UINT16 *iLunarMonth, UINT16 *iLuanrDay, 
								UINT32 startx, UINT32 starty, UINT8 bSecondLeapMonth);


⌨️ 快捷键说明

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