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

📄 calendarconvert.h

📁 实现阴历与阳历的相互转换
💻 H
字号:
//文件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 + -