/************************************************************************/
/*
	�ļ����ƣ� CalendarEx.h
	�ļ���ʶ��
	����ժҪ�� ����ת����;
	����˵���� ��
	��ǰ�汾�� V 0.1
	��    �ߣ� Jeff
	������ڣ� 2015��05��14��

	�޸ļ�¼1��
	�޸����ڣ�-
	�� �� �ţ�-
	�� �� �ˣ�-
	�޸����ݣ�-
*/
/************************************************************************/
#ifndef __CALENDAREX_HEADER__
#define __CALENDAREX_HEADER__

#include <ctime>
#include <cassert>
#include <cstring>
#include <iostream>
using namespace std;

//����һ��ũ������;
typedef struct _STDATE_
{
	int year;
	int month;
	int day;
	bool leap;	//�Ƿ�����;
} Date;

#pragma once
class CCalendarEx
{
	CCalendarEx();
public:
	~CCalendarEx();
	static CCalendarEx* GetInstnace()
	{
		static CCalendarEx tagInstance;
		return &tagInstance;
	}
	
	int DayOfSolarYear(int year, int month, int day);
	bool IsValidLunanrDate(int lunar_year, int lunar_month, int lunar_day);
	// ����תũ��;
	Date SolarToLuanrDate(int solar_year, int solar_month, int solar_day);
	CString GetLunarDate(int solar_year, int solar_month, int solar_day);
	// ũ��ת����;
	CString LuanrToSolarDate(int lunar_year, int lunar_month, int lunar_day, BOOL bLeap = FALSE);
};

#endif