1. 程式人生 > >vc時間函式總結

vc時間函式總結

字串和時間格式相互轉化
一使用C標準庫
在vc2010中time_t使用64位來儲存時間型別
typedef __time64_t time_t;
使用函式time(time_t)time_t為NULL時獲取日曆時間,不為空設定日曆時間
struct tm * localtime(const time_t * timer)返回一個以tm結構表達的時間

struct tm{
    int tm_sec;
    int tm_min;
    int tm_hour; 
    int tm_mday;
    int tm_mon;
    int tm_year;
    int tm_wday;
    int tm_yday;
    int tm_isdst}; 

size_t strftime(char * strDest,
size_t maxsize,
const char * format,
const struct tm * timeptr)
format:表示式字串
%a 星期幾的簡寫
%A 星期幾的全稱
%b 月份的簡寫
%B 月份的全稱
%c 標準的日期的時間串
%C 年份的後兩位數字
%d 十進位制表示的每月的第幾天
%D 月/天/年
%e 在兩字元域中,十進位制表示的每月的第幾天
%F 年-月-日
%g 年份的後兩位數字,使用基於周的年
%G 年份,使用基於周的年
%h 簡寫的月份名
%H 24小時制的小時
%I 12小時制的小時
%j 十進位制表示的每年的第幾天
%m 十進位制表示的月份
%M 十時製表示的分鐘數
%n 新行符
%p 本地的AM或PM的等價顯示
%r 12小時的時間
%R 顯示小時和分鐘:hh:mm
%S 十進位制的秒數
%t 水平製表符
%T 顯示時分秒:hh:mm:ss
%u 每週的第幾天,星期一為第一天 (值從0到6,星期一為0)
%U 第年的第幾周,把星期日作為第一天(值從0到53)
%V 每年的第幾周,使用基於周的年
%w 十進位制表示的星期幾(值從0到6,星期天為0)
%W 每年的第幾周,把星期一做為第一天(值從0到53)
%x 標準的日期串
%X 標準的時間串
%y 不帶世紀的十進位制年份(值從0到99)
%Y 帶世紀部分的十制年份
%z,%Z 時區名稱,如果不能得到時區名稱則返回空字元。
%% 百分號

time_t t = time(0);
char tmp[64]; 
strftime( tmp, sizeof(tmp), " %Y/%m/%d %X %A 本年第%j天%z" , localtime(&t) );

使用WinApi
#include <windows.h>
typedef struct
{
    WORD wYear ;// 年
    WORD wMonth ;//月
    WORD wDayOfWeek ;//星期,0=星期日,1=星期一...
    WORD wDay ;//日
    WORD wHour ;//時
    WORD wMinute ;//分
    WORD wSecond ;//秒
    WORD wMilliseconds ;//毫秒
}SYSTEMTIME

函式GetLocalTime獲得本地時間
void GetLocalTime(LPSYSTEMTIME lpSystemTime)
lpSystemTime是SYSTEMTIME結構體指標
BOOL SetLocalTime(const LPSYSTEMTIME lpSystemTime)
設定本地時間
GetLocalTime與GetSystemTime的區別在於localtime是帶有時區的時間而systemtime是格林威治時間。


關於兩個標頭檔案#include <time.h> 是C標準庫的標頭檔案
而#include <ctime>是C++的標頭檔案幷包含了std的名稱空間


ATL中有CTime類
其中有靜態函式CTime::GetCurrentTime()

CTime(
    int nYear,//1970-3000
    int nMonth,//1-12
    int nDay,//1-31
    int nHour,//0-23
    int nMin,//0-59
    int nSec,//0-59
    int nDST = -1
);
引數nDST指定是否使用夏令時,0為表示實行標準時間,為正數使用夏令時,為負數系統自己計算,我國現在不使用夏令時,如俄羅斯使用夏令時。
CTime格式化時間使用函式CString Format(LPCTSTR pszFormat) const,格式化引數如下:
%a:周的英文縮寫形式。
%A:周的英文全名形式。
%b: 月的英文縮寫形式。
%B:月的英文全名形式。
%c: 完整的日期和時間。
%d:十進位制形式的日期(01-31)。
%H:24小時制的小時(00-23)。
%I: 12小時制的小時(00-11)。
%j: 十進位制表示的一年中的第幾天(001-366)。
%m: 月的十進位制表示(01-12)。
%M:十進位制表示的分鐘(00-59)。
%p: 12小時制的上下午標示(AM/PM)。
%S: 十進位制表示的秒(00-59)。
%U: 一年中的第幾個星期(00-51),星期日是一週的第一天。
%W: 一年中的第幾個星期(00-51),星期一是一週的第一天。
%w: 十進位制表示的星期幾(0-6)。
%Y: 十進位制表示的年。


CString轉為CTime


需要庫函式sscanf所需標頭檔案#include <stdio.h>
int sscanf( const char *, const char *, ...);
使用sscanf把字串轉化為年月日時分秒的整形值並重新構造CTime
如果取時間差在vc中可使用CTimeSpan類
具體程式碼如:

CTime time1 = CTime::GetCurrentTime();
CTime time2 = CTime::GetCurrentTime(); // 兩個CTime相減得到CTimeSpan 
CTimeSpan timeSpan = time2 - time1;



相關推薦

vc時間函式總結

字串和時間格式相互轉化 一使用C標準庫 在vc2010中time_t使用64位來儲存時間型別 typedef __time64_t time_t; 使用函式time(time_t)time_t為NULL時獲取日曆時間,不為空設定日曆時間 struct tm * local

時間函式總結

console.dir(ev); // console.dir(ev.property.getTimezoneOffset()); // getFullYear 方法 // getMonth 方法 // getDate 方法 // getDay

MySQL:日期函式時間函式總結

MySQL 獲得當前日期時間 函式 獲得當前日期+時間(date + time)函式:now() mysql> select now(); +---------------------+ | now() | +---------------------+ |

MySQL 有關日期時間 函式總結

一、MySQL 獲得當前日期時間 函式1.1 獲得當前日期+時間(date + time)函式:now() mysql>select now();+---------------------+| now()               |+---------------------+|2008-08-0

hive 時間函式 總結

大資料,演算法qq交流群:397173819 做資料探勘的,離不開使用各種時間函式。 為了避免遺忘,以及後續各種抓瞎到處亂找,特意總結了hive中大部分常用的時間函式,方便自己也方便他們。 1.unix_timestamp() 返回當前時區的unix時間

python 時間函式總結

時間戳:從1970年1月1日00:00:00開始按秒計算的偏移量。舉個例子,現在是2017年6月11的下午16:54:32,那麼print(time.time())輸出的值是1497171320.99就代表現在的時間戳。 元組(struct_time):struct_time

vc】高精度時間函式的使用

方法一: 函式定義如下: int UsSleep(int us);//返回實際的微秒延時時間 程式碼實現如下: 1 //引數一表示 需要等待的時間 微秒為單位 2 int UsSleep(int us) 3 { 4 //儲存計數的聯合 5 LARGE_INTE

c#日期時間的操作的函式總結

當前日期時間的獲取:  DateTime datetime1=DateTime.Now; 日期時間的運算: string str1=(datetime1.AddYears(1)).ToString(); //加年份 string str1=(datetime1.AddMonths(1)).ToString(

C語言時間日期函式總結

用到的資料結構: time_t是一個long型別 代表機器時間,可由time( )函式獲得。 日曆時間用一個(char *) 型別的字串表示。格式為:星期 月 日 小時:分:秒 年\n\0 可由函式ctime( ) asctime( ) 得到。 以tm結構表達的時間,結構tm定義如下:            

javascript時間函式-時間總結

javascript時間戳經常用到,現在總結一下。 一、時間戳函式 <script>function getLocalTime(nS){returnnewDate(parseInt(nS)*1000).toLocaleString().replace(/:\d{1,2}$/,' ');}

總結PHP中返回各種型別的時間函式

一、返回字串的函式: string date(string $format,[int timestamp]); 二、返回整數時間戳的函式: int time(void); 返回當前時間的時間戳 int strtotime(string $time,[int $now]); 以

影象分割的主要函式總結

影象分割可以理解為:提取影象的感興趣區域,可以分為兩部分: 第一步:獲取mask區域:defgenerateMask(img): def generateMask(img): blured_img = getBlurImage(img) #①對影象進行高斯平滑濾波

VC除錯問題總結

問題一:IntelliSense: 錯誤地終止了巨集呼叫 解決:在使用CreateWindow時多了一個( 問題二: 問題三:利用Win32模擬視窗建立時,報錯: 錯誤 1 error C2275: “HWND”: 將此型別用作表示式非法 錯誤 3 error C2065: “hW

wordpress各種獲取路徑和URl地址的函式總結

wordpress中的路徑也不是很負責,有人為了讓wordpress執行速度更快,就直接寫了絕對地址,其實這樣是很不好的,有可能別人修改了wordpress程式的地址,那麼這樣你編寫的這個外掛或者是主題就只有你自己用,別人無法使用,這樣做得不償失,為了避免錯誤,瞭解WordPress中與獲取路徑相關的函式很重

java 多個一元分段行駛時間函式合併成一個分段行駛時間函式

多個f分段行駛時間函式合併需要注意的是一個節點的到達時間即為該點的出發時間。 分段函式的建構函式如下 這裡寫程式碼片 public class FunctionUnit { private double k,b; double XStart,XEnd; publ

numpy函式總結

1.numpy.bincount:bin的數量比x中的最大值大1,每個bin給出了它的索引值在x中出現的次數。 # 我們可以看到x中最大的數為7,因此bin的數量為8,那麼它的索引值為0->7 x = np.array([0, 1, 1, 3, 2, 1, 7]) # 索引0出現了1次,

Pytorch loss function函式總結

注意: 很多的loss 函式都有size_average和reduce倆個布林型別的引數。因為一般損失函式都是直接計算batch的資料,因此返回的loss結果都是維度(batch_size, )的向量。 如果 reduce = False,那麼 size_average 引數失

DB2常用函式三:日期時間函式

DATE函式  語法:DATE(ARG)  DATE函式返回一個日期、時間戳、日期字串、時間戳字串中的日期。 Sql程式碼 eg:       SEL

mysql 常用日期,時間函式

MySQL常用時間函式   1.1 獲得當前日期+時間(date + time)函式:now()   1.2 獲得當前日期+時間(date + time)函式:sysdate() sysdate() 日期時間函式跟 now() 類似,不同之處在於:now()

VC++介面程式設計總結

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!