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

📄 calendarconvert.h

📁 mytoolpad 源码
💻 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 + -