如何獲取當前時間的前N天時間格式字符串

最近做項目,有這麼一個需求:根據當前時間,得到前N天的年月日格式字符串,比如今天是2010年06月04日,那麼今天的格式字符串爲:20100604,昨天的應該爲20100603,前天的爲20100602, etc...

  看到這個需求的時候,我首先是想根據年月日推算前N天分別是什麼.但是後來一想,這個方法太麻煩了,要考慮年月日的進位退位,不是一般的繁瑣.

後來在老大的幫助下,使用了一種新的方法.就是得到當前距離1970年的秒數,然後分別減去一天的秒數,然後再轉換回CTime類型...算進位和退位的工作交給了CTime 和其它一些函數來處理...哈.

  廢話少說:代碼如下:

view plaincopy to clipboardprint?
01./* 
02.* resultStr:  CString類型的數組,存放分解之後的日期字符串 
03.* SplitCount: 需要算日期的前N天 
04.*/ 
05.long SplitDate(CString *resultStr, int Splitcount)  
06.{  
07.   CString tmpStr = L"";  
08.   CTime curTime;  
09.   time_t ltime;  
10.     
11.   ltime = (CTime::GetCurrentTime()).GetTime();  //獲取當前時間  
12.   for (int i = 0; i < Splitcount; i++)  
13.   {  
14.       curTime = ltime; //賦值到CTime,CTime的構造函數會自動處理轉換  
15.       tmpStr.Format(L"%d%02d%02d", curTime.GetYear(), curTime.GetMonth(), curTime.GetDay());//時間格式化  
16.       resultStr[i] = tmpStr;  
17.       struct tm *tmTmp = localtime( &ltime);  
18.       tmTmp->tm_mday -= 1;  //減去一天  
19.       ltime = mktime(tmTmp); //重新生成時間  
20.   }  
21.   return 0;  
22.} 

 

本文來自CSDN博客,轉載請標明出處:http://blog.csdn.net/zaijzhgh/archive/2010/06/04/5648227.aspx

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章