关于时间计算 我想做个计时器,可以输入持续时间,然后通过当前时间和持续时间的相加得到停止时间,这样我可以在那个时间停止计时器,现在的问题是我如果输入持续一百天,我该怎样算终止时间,如果碰到2月,又该怎么算。或者谁有更好的思路 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 获取当天时间,与当月的时间差 p ,若 p 小于 输入的持续时间t,再算次月天数,依次操作,最终算出后到期的是哪天,////获取本月的时间BOOL CReportTableView::GetLocalMonth(SYSTEMTIME &timeBegin, SYSTEMTIME &timeEnd){ SYSTEMTIME timeToday ; GetLocalTime(&timeToday) ; timeToday.wHour=0;timeToday.wMinute=0;timeToday.wSecond=0;timeToday.wMilliseconds=0; ////本月开始时间; timeBegin = timeToday ; timeBegin.wDay = 1 ; int nRelativeDate =0 ; SYSTEMTIME timeTemp ; CTimeSpan spadd(31,0,0,0) ; CTime t1(timeBegin) ; t1 += spadd ; ////取31天后的日期 t1.GetAsSystemTime(timeTemp) ; nRelativeDate = 31 - timeTemp.wDay + 1 ; ////获取天 timeEnd = timeBegin ; timeEnd.wDay = nRelativeDate ; timeBegin.wHour=0;timeBegin.wMinute=0;timeBegin.wSecond=0;timeBegin.wMilliseconds=0; timeEnd.wHour=23;timeEnd.wMinute=59;timeEnd.wSecond=59;timeBegin.wMilliseconds=0; return TRUE ; } timeBegin 为本月第一天,timeEnd 为本月最后一天。 union { FILETIME ft; ULONGLONG lltime; }dt; SYSTEMTIME st; ULONGLONG dwDuration=UInt32x32To64(days*24*60*60,10000000); // 时间间隔转化成以100ns为单位 GetLocalTime(&st); SystemTimeToFileTime(&st, &dt.ft); dt.lltime+=dwDuration; FileTimeToSystemTime(&dt.ft, &st); TCHAR szText[100]; wsprintf(szText, TEXT("%4d-%2d-%2d"), st.wYear, st.wMonth, st.wDay); MessageBox(NULL, szText, 0,0); linux电脑最多能设置多少IP? 关于读写二进制文件 几个combox控件如何实现相互控制?急~~~ 在DLL里面怎么创建对话框? 限制一个程序只能实现n个实例? 为什么我用了WSAStartup函数,却不能创建CSocket? 小弟在写界面时遇到了一点小问题,请教各位大虾,有关对话框的显示问题。分?没问题~~ vs2010连接excel TCP/IP(socket)问题,急 深圳的冬天,今天第一次感觉到拿着鼠标都觉得冷 A2W问题! GDI+双缓冲的问题. 如何将一个JPG图片作为视图的背景
若 p 小于 输入的持续时间t,再算次月天数,依次操作,最终算出后到期的是哪天,
////获取本月的时间
BOOL CReportTableView::GetLocalMonth(SYSTEMTIME &timeBegin, SYSTEMTIME &timeEnd)
{
SYSTEMTIME timeToday ;
GetLocalTime(&timeToday) ;
timeToday.wHour=0;timeToday.wMinute=0;timeToday.wSecond=0;timeToday.wMilliseconds=0;
////本月开始时间;
timeBegin = timeToday ;
timeBegin.wDay = 1 ;
int nRelativeDate =0 ;
SYSTEMTIME timeTemp ;
CTimeSpan spadd(31,0,0,0) ;
CTime t1(timeBegin) ;
t1 += spadd ; ////取31天后的日期
t1.GetAsSystemTime(timeTemp) ;
nRelativeDate = 31 - timeTemp.wDay + 1 ; ////获取天
timeEnd = timeBegin ;
timeEnd.wDay = nRelativeDate ; timeBegin.wHour=0;timeBegin.wMinute=0;timeBegin.wSecond=0;timeBegin.wMilliseconds=0;
timeEnd.wHour=23;timeEnd.wMinute=59;timeEnd.wSecond=59;timeBegin.wMilliseconds=0;
return TRUE ;
}
{
FILETIME ft;
ULONGLONG lltime;
}dt; SYSTEMTIME st;
ULONGLONG dwDuration=UInt32x32To64(days*24*60*60,10000000); // 时间间隔转化成以100ns为单位 GetLocalTime(&st);
SystemTimeToFileTime(&st, &dt.ft); dt.lltime+=dwDuration; FileTimeToSystemTime(&dt.ft, &st); TCHAR szText[100];
wsprintf(szText, TEXT("%4d-%2d-%2d"), st.wYear, st.wMonth, st.wDay);
MessageBox(NULL, szText, 0,0);