<pre name="code" class="cpp">//参数nYear,nMonth,nDay 表示当天日期,nBeforeToday 表示几天前
void transferToActualDay( int &nYear,int &nMonth,int &nDay,int nBeforeToday )
{
if (nDay <= nBeforeToday)
{
nBeforeToday -= nDay;
switch(nMonth)
{
case 1:
{
nYear --;
nMonth = 12;
nDay = 31;
}
break;
case 2:
{
nMonth --;
nDay = 31;
}
break;
case 3:
{
nMonth --;
if((nYear%4==0&&nYear%100!=0)||(nYear%400==0))
{
nDay = 29;
}
else
{
nDay = 28;
}
}
break;
case 4:
case 6:
case 9:
case 11:
{
nMonth --;
nDay = 31;
}
break;
case 5:
case 7:
case 8:
case 10:
case 12:
{
nMonth --;
nDay = 30;
}
break;
default:
break;
}
transferToActualDay(nYear,nMonth,nDay,nBeforeToday);
}
else
{
nDay -= nBeforeToday;
}
}