📄 calendarconvert.h
字号:
#ifndef __CALENDARCONVERT__H_
#define __CALENDARCONVERT__H_
typedef struct CalendarStruct
{
CalendarStruct(){}
CalendarStruct(int m_y,int m_m,int m_d)
{
FillThis(m_y,m_m,m_d);
}
int year;
int month;
int day;
int week;
BOOL isrunyue;
void FillThis(int m_y,int m_m,int m_d)
{
year=m_y;
month=m_m;
day=m_d;
}
void FromFile(CFile &m_file)
{
m_file.Read((char *)&year,sizeof(int));
m_file.Read((char *)&month,sizeof(int));
m_file.Read((char *)&day,sizeof(int));
}
void ToFile(CFile &m_file)
{
m_file.Write((char *)&year,sizeof(int));
m_file.Write((char *)&month,sizeof(int));
m_file.Write((char *)&day,sizeof(int));
}
}CALENDAR;
class CCalendarConvert
{
public:
CCalendarConvert();
~CCalendarConvert();
public:
CALENDAR ConvertToGongLi(CALENDAR m_nongli); //将农历日期转化为公历日期
CALENDAR ConvertToNongLi(CALENDAR m_gongli); //将公历日期转化为农历日期
int GetWeekInfo(CALENDAR m_gongli); //根据公历日期计算星期
void MakeCalendar(CALENDAR *m_cal,int y,int m,int d);//填充日期结构的年月日
BOOL GongDataIsValid(CALENDAR m_date); //判断公历日期是否在界内
BOOL NongDataIsValid(CALENDAR m_date); //判断农历日期是否在界内
int GetGongDays(CALENDAR m_start,CALENDAR m_end); //获取公历两个日期之间的天数
int GetNongDays(CALENDAR m_start,CALENDAR m_end); //获取农历两个日期之间的天数
int DaysFromNewYear(CALENDAR m_day); //公历日期到元旦的天数
CALENDAR CalGongDate(int year,int days); //根据天数(到元旦)计算公历日期
int CompareTwoDate(CALENDAR m_fir,CALENDAR m_sec); //比较两个日期的大小
CALENDAR GetCurGongDate(); //将当前公历日期合成为结构
CALENDAR GetDateAfterDays(CALENDAR m_first,int m_days);//当前公历日期后N天的公历日期
int GetNongRunYue(int year); //获取农历闰月
CString GetGanZhi(int m_nongyear); //获取农历年份的干支名称
void NongMonthToList(int m_nongyear,CComboBox & m_list);//将农历年的月份注入组合框
int GetGongMonthDays(int year,int month); //获取公历月的天数
int GetNongMonthDays(int year,int month); //获取农历月的天数
int GetNongMonthDays(int year,int month,BOOL m_run);//获取农历月的天数
int GetNongRunYueDays(int year); //获取农历年闰月天数
protected:
int GetGongYearDays(int year); //获取公历年的天数
int GetNongYearDays(int year); //获取农历年的天数
int DaysFromSpringDay(CALENDAR m_day); //农历日期到春节的天数
CALENDAR CalNongDate(int year,int days); //价格天数(到春节)计算农历日期
BOOL YearIsRunNian(int year); //公历年是否闰年
BOOL RunYueIsLarge(int year); //判断闰月是否为大月
BOOL MonthIsRunYue(int year,int month); //判断是否是闰月
BOOL NongMonthIsLarge(int year,int month); //判断农历年的月份是否为大月
BOOL GongMonthIsLarge(int month); //判断公历月份是否为大月(二月除外)
int GetDaysFromStart(int year); //农历大年初一到元旦的天数
int Cal2N(int n); //计算2的N次方
CString GetNNameIn60(int index); //获取60年中的第N年的天干地支名称
private:
int m_maxyear; //支持的最大年份
int m_minyear; //支持的最小年份
char **CalendarData; //公农历转化数据
};
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -