在线二区人妖系列_国产亚洲欧美日韩在线一区_国产一级婬片视频免费看_精品少妇一区二区三区在线

鍍金池/ 教程/ C/ 日期和時間
動態(tài)內(nèi)存
類和對象
接口 (抽象類)
結(jié)構(gòu)體
循環(huán)的類型
函數(shù)
數(shù)字
日期和時間
基本語法
多態(tài)
數(shù)據(jù)抽象
注釋
命名空間
字符串
預(yù)處理器
決策語句
修飾符的類型
鍙橀噺綾誨瀷
基本輸入輸出
操作符
數(shù)組
模板
多線程
繼承
Web 編程
信號處理
指針
存儲類型
概述
引用
常量
異常處理
開發(fā)環(huán)境
重載
變量作用域
數(shù)據(jù)類型
數(shù)據(jù)封裝
文件和流

日期和時間

C++ 標(biāo)準(zhǔn)庫沒有提供一個合適的日期類型。C++ 從 C 中繼承了針對日期和時間的結(jié)構(gòu)和功能,為了訪問與日期和時間相關(guān)的功能和結(jié)構(gòu),需要在 C++ 程序中包括 <ctime> 頭文件。

這里有四個與時間相關(guān)的類型:clock_t、time_t、size_ttm。clock_t,size_t 和 time_t 類型能夠以某種類型的整數(shù)表示系統(tǒng)時間和日期。

結(jié)構(gòu)類型 tm 以 C 結(jié)構(gòu)體的形式支持日期和時間,有以下元素:

    struct tm {
      int tm_sec;   // seconds of minutes from 0 to 61
      int tm_min;   // minutes of hour from 0 to 59
      int tm_hour;  // hours of day from 0 to 24
      int tm_mday;  // day of month from 1 to 31
      int tm_mon;   // month of year from 0 to 11
      int tm_year;  // year since 1900
      int tm_wday;  // days since sunday
      int tm_yday;  // days since January 1st
      int tm_isdst; // hours of daylight savings time
    }

以下是我們在 C 或 C++ 中處理日期和時間時使用的一些重要的函數(shù)。所有這些函數(shù)都是標(biāo)準(zhǔn) C 和 C++ 庫的一部分,你可以使用下面給出的 C++ 標(biāo)準(zhǔn)庫引用查看它們的使用細節(jié)。

序號 功能與目的
1 time_t time(time_t *time);這將返回當(dāng)前系統(tǒng)的日歷時間,以自 1970 年 1 月 1 日開始系統(tǒng)運行秒數(shù)的形式。如果系統(tǒng)沒有時間,返回 1。
2 char *ctime(const time_t *time);這返回一個指向字符串的指針,字符串形式為 day month year hours:minutes:seconds year\n\0
3 struct tm *localtime(const time_t *time);這將返回一個指向 tm 結(jié)構(gòu)體的指針,tm 結(jié)構(gòu)體代表當(dāng)?shù)貢r間。
4 clock_t clock(void);這將返回一個與被調(diào)用程序運行時間的總和接近的值。如果時間無效,返回 1。
5 char * asctime ( const struct tm * time );這將返回一個指向字符串的指針,該字符串包含的信息以如下結(jié)構(gòu)體存儲,結(jié)構(gòu)體形式如下:day month year hours:minutes:seconds year\n\0
6 struct tm *gmtime(const time_t *time);它返回一個指向時間的指針,該時間是 tm 結(jié)構(gòu)的。時間用協(xié)調(diào)世界時(UTC)表示,在本質(zhì)上是格林威治標(biāo)準(zhǔn)時間(GMT)。
7 time_t mktime(struct tm *time);返回日歷時間,時間以參數(shù)中指出的結(jié)構(gòu)形式表示。
8 double difftime ( time_t time2, time_t time1 );這個函數(shù)計算秒 time1 和 time2 之間的差異。
9 size_t strftime();這個函數(shù)可以用于以一種特定格式來格式化日期和時間。

當(dāng)前的日期和時間

考慮你想要取得當(dāng)前系統(tǒng)的日期和時間,作為當(dāng)?shù)貢r間或作為一個協(xié)調(diào)世界時(UTC)。下面是一個實現(xiàn)相同目的的示例:

    #include <iostream>
    #include <ctime>

    using namespace std;

    int main( )
    {
       // current date/time based on current system
       time_t now = time(0);

       // convert now to string form
       char* dt = ctime(&now);

       cout << "The local date and time is: " << dt << endl;

       // convert now to tm struct for UTC
       tm *gmtm = gmtime(&now);
       dt = asctime(gmtm);
       cout << "The UTC date and time is:"<< dt << endl;
    }

編譯和執(zhí)行上面的代碼,執(zhí)行結(jié)果如下:

    The local date and time is: Sat Jan  8 20:07:41 2011

    The UTC date and time is:Sun Jan  9 03:07:41 2011

使用結(jié)構(gòu)體 tm 格式化時間:

無論是在 C 還是在 C++ 中,tm 結(jié)構(gòu)體在處理日期和時間時都是非常重要的。如前所述,該結(jié)構(gòu)以一種 C 語言結(jié)構(gòu)體的形式支持日期和時間。大部分與時間相關(guān)的函數(shù)使用 tm 結(jié)構(gòu)。下面是一個例子,它使用了各種各樣日期和時間的相關(guān)函數(shù)和 tm 結(jié)構(gòu):

在本章中使用結(jié)構(gòu)體,基于一個假設(shè):你已經(jīng)對 C 語言的結(jié)構(gòu)體有了基本的了解,并且知道如何使用箭頭操作符:-> 訪問結(jié)構(gòu)體成員。

    #include <iostream>
    #include <ctime>

    using namespace std;

    int main( )
    {
       // current date/time based on current system
       time_t now = time(0);

       cout << "Number of sec since January 1,1970:" << now << endl;

       tm *ltm = localtime(&now);

       // print various components of tm structure.
       cout << "Year: "<< 1900 + ltm->tm_year << endl;
       cout << "Month: "<< 1 + ltm->tm_mon<< endl;
       cout << "Day: "<<  ltm->tm_mday << endl;
       cout << "Time: "<< 1 + ltm->tm_hour << ":";
       cout << 1 + ltm->tm_min << ":";
       cout << 1 + ltm->tm_sec << endl;
    }

編譯和執(zhí)行上面的代碼,執(zhí)行結(jié)果如下:

    Number of sec since January 1, 1970:1294548238
    Year: 2011
    Month: 1
    Day: 8
    Time: 22: 44:59
上一篇:決策語句下一篇:繼承