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()这个函数(好象是这个吧?)
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秒
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()得到日
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()这个函数(好象是这个吧?)
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秒
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()得到日
t += CTimeSpan( 1, 0, 0, 0 ); // 增加1天0小时0分0秒
t.GetYear()得到年
t.GetMonth()得到月
t.GetDay()得到日
#6
楼上讲的有道理!:)
#7
有理。