高分请教!!用下面的语句实现了获取系统当天的年月日,请问如何得到第二天的年月日呀?好的简单的算法。感谢!!

时间:2021-07-18 19:58:24
用下面的语句实现了获取系统当天的年月日,请问如何得到第二天的年月日呀?好的简单的算法。感谢!!
SYSTEMTIME systemTime;
GetLocalTime(&systemTime);
systemTime.wYear、systemTime.wMonth、systemTime.wDay是今天的年月日,请问如何得到第二天的年月日呀?

http://expert.csdn.net/Expert/topic/1859/1859328.xml?temp=.2703974也是,回答正确后,到哪里拿分,感谢!!

7 个解决方案

#1



int monthdays[][12]={31,28,31,30,31,30,31,31,30,31,30,31,
 31,29,31,30,31,30,31,31,30,31,30,31};

SYSTEMTIME systemTime;
int nIsLeap, nDay, nMonth, nYear;

GetLocalTime(&systemTime);

if((systemTime.wYear%400)==0)
{
nIsLeap = 1;
}
else if((systemTime.wYear%4)==0&&(systemTime.wYear%100)!=0)
{
nIsLeap = 1;
}
else
{
nIsLeap = 0;
}

nDay = systemTime.wDay + 1;
if(nDay > monthdays[nIsLeap][systemTime.wMonth-1])
{
nDay = 1;
nMonth = systemTime.wMonth + 1;
if(nMonth > 12)
{
nMonth = 1;
nYear = systemTime.wYear + 1;
}
else
{
nYear = systemTime.wYear;
}
}
else
{
nMonth = systemTime.wMonth;
nYear = systemTime.wYear;
}

#2


先判断日,如果日没有进入下一月第一天,得到结果,退出
如果日期进入了下一个月,
     判断月是否进入了下一年,没有则得到结果,退出
     否则     已经进入了下一年,也得到结果,退出。

很简单呀。

#3


COleDateTime t=COleDateTime::GetCurrentTime();//得到当天日期
COleDateTimeSpan dt(1,0,0,0,0,0);//1天
t=t+dt;//得到第二天
int year=t.GetYear();
int month=t.GetMonth();
int day=t.GetDay();
可以用CTime代替COleDateTime,因为后者需要在系统初始化里加上AfxOleInit()这个函数(好象是这个吧?)

#4


CTime t = CTime::GetCurrentTime(); // 取当前时间
t += CTimeSpan( 1, 0, 0, 0 ); // 增加1天0小时0分0秒

#5


CTime t = CTime::GetCurrentTime(); // 取当前时间
t += CTimeSpan( 1, 0, 0, 0 ); // 增加1天0小时0分0秒

t.GetYear()得到年
t.GetMonth()得到月
t.GetDay()得到日

#6


楼上讲的有道理!:)

#7


有理。

#1



int monthdays[][12]={31,28,31,30,31,30,31,31,30,31,30,31,
 31,29,31,30,31,30,31,31,30,31,30,31};

SYSTEMTIME systemTime;
int nIsLeap, nDay, nMonth, nYear;

GetLocalTime(&systemTime);

if((systemTime.wYear%400)==0)
{
nIsLeap = 1;
}
else if((systemTime.wYear%4)==0&&(systemTime.wYear%100)!=0)
{
nIsLeap = 1;
}
else
{
nIsLeap = 0;
}

nDay = systemTime.wDay + 1;
if(nDay > monthdays[nIsLeap][systemTime.wMonth-1])
{
nDay = 1;
nMonth = systemTime.wMonth + 1;
if(nMonth > 12)
{
nMonth = 1;
nYear = systemTime.wYear + 1;
}
else
{
nYear = systemTime.wYear;
}
}
else
{
nMonth = systemTime.wMonth;
nYear = systemTime.wYear;
}

#2


先判断日,如果日没有进入下一月第一天,得到结果,退出
如果日期进入了下一个月,
     判断月是否进入了下一年,没有则得到结果,退出
     否则     已经进入了下一年,也得到结果,退出。

很简单呀。

#3


COleDateTime t=COleDateTime::GetCurrentTime();//得到当天日期
COleDateTimeSpan dt(1,0,0,0,0,0);//1天
t=t+dt;//得到第二天
int year=t.GetYear();
int month=t.GetMonth();
int day=t.GetDay();
可以用CTime代替COleDateTime,因为后者需要在系统初始化里加上AfxOleInit()这个函数(好象是这个吧?)

#4


CTime t = CTime::GetCurrentTime(); // 取当前时间
t += CTimeSpan( 1, 0, 0, 0 ); // 增加1天0小时0分0秒

#5


CTime t = CTime::GetCurrentTime(); // 取当前时间
t += CTimeSpan( 1, 0, 0, 0 ); // 增加1天0小时0分0秒

t.GetYear()得到年
t.GetMonth()得到月
t.GetDay()得到日

#6


楼上讲的有道理!:)

#7


有理。