char* getData(int iYear, int iMonth, int iDay, int inCountDay)
{
char psResult[100]="";
if ( iYear <= 0 || iMonth <= 0 || iDay <=0 || inCountDay <0 || iMonth >12)
{
return psResult;
}
int iSumday = 0;
int iLeapYear = 0;
int month_Data[12] = {31,28,31,30,31,30,31,31,30,31,30,31};
if(iYear%400==0 || (iYear%4==0 && iYear%100!=0))
{
iLeapYear=1;
}
if (iMonth == 2)
{
if ((month_Data[iMonth-1]+iLeapYear)<iDay || iDay <=0)
{
return psResult;
}
}
iSumday = iDay + inCountDay;
while (iSumday > month_Data[iMonth -1])
{
if (iMonth == 2)
{
if (iLeapYear == 1)
{
month_Data[iMonth -1]+=1;
}
}
iSumday -= month_Data[iMonth - 1];
iMonth ++;
if (iMonth >12)
{
iYear++;
iMonth = 1;
}
if(iYear%400==0 || (iYear%4==0 && iYear%100!=0))
{
iLeapYear=1;
}
else
{
iLeapYear = 0;
}
}
iDay = iSumday;
sprintf(psResult, "%d年%d月%d日", iYear,iMonth,iSumday);
return psResult;
}
string TcharToString(TCHAR* pstr)
{
int iLen = WideCharToMultiByte(CP_ACP, 0, pstr, -1, NULL, 0, NULL, NULL);
char* chRtn =new char[iLen*sizeof(char)];
WideCharToMultiByte(CP_ACP, 0, pstr, -1, chRtn, iLen, NULL, NULL);
std::string str(chRtn);
delete [] chRtn;
return str;
}
TCHAR* CStringToTCHAR(CString &str)
{
int iLen = str.GetLength();
TCHAR* szRs = new TCHAR[iLen];
lstrcpy(szRs, str.GetBuffer(iLen));
str.ReleaseBuffer();
return szRs;
}
CString GetData(int iYear, int iMonth, int iDay, int inCountDay)
{
int leapyear=0;
int iSumDay;
CString strResult = _T("");
if (inCountDay < 0 || iYear<=0 || iMonth >12 || iMonth<1)
{
return strResult;
}
static int month_date[12]={31,28,31,30,31,30,31,31,30,31,30,31};
if(iYear%400==0 || (iYear%4==0 && iYear%100!=0))
{
leapyear=1;
}
if(iMonth==2)
{
if((month_date[iMonth-1]+leapyear)< iDay || iDay<=0)
{
return strResult;
}
}
if(iMonth !=2)
{
if(month_date[iMonth-1]< iDay || iDay<=0)
{
return strResult;
}
}
iSumDay = inCountDay+iDay;
do
{
if(iMonth==2)
{
month_date[iMonth-1]+=leapyear;
}
if(iSumDay>month_date[iMonth-1])
{
iSumDay-=month_date[iMonth-1];
iMonth++;
if(iMonth==13)
{
iYear++;
if(iYear%400==0||(iYear%4==0&&iYear%100!=0))
{
leapyear=1;
}
else
{
leapyear=0;
}
iMonth=1;
}
}
}while(iSumDay>month_date[iMonth-1]);
iDay =iSumDay;
strResult.Format(_T("%d年%d月%d日"), iYear, iMonth, iDay);
return strResult;
}