📄 calendars.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 + -