保留

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;

}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值