Latest web development tutorials

C ++ Date et heure

bibliothèque standard de C ne fournit pas la soi-disant type de date. C ++ a hérité de la structure et la fonction du langage C pour la date et l'heure de l'opération. Pour utiliser la date et les fonctions et les structures de rapport avec le temps nécessaire pour référencer le <ctime> fichier d'en-tête dans les programmes C de.

Il existe quatretypes liés au temps:clock_t, time_t, size_t ettm.Type de clock_t, size_t et time_t l'heure du système et la date peuvent être représentés comme une sorte de nombre entier.

Type de structuretm à la date et l' heure sous la forme de structures C structure tm stockée est définie comme suit:

struct tm {
  int tm_sec;   // 秒,正常范围从 0 到 59,但允许至 61
  int tm_min;   // 分,范围从 0 到 59
  int tm_hour;  // 小时,范围从 0 到 23
  int tm_mday;  // 一月中的第几天,范围从 1 到 31
  int tm_mon;   // 月,范围从 0 到 11
  int tm_year;  // 自 1900 年起的年数
  int tm_wday;  // 一周中的第几天,范围从 0 到 6,从星期日算起
  int tm_yday;  // 一年中的第几天,范围从 0 到 365,从 1 月 1 日算起
  int tm_isdst; // 夏令时
}

Ce qui suit est une fonction C / C ++ sur les dates et heures importantes. Toutes ces fonctions font partie de la / C ++ bibliothèque standard C, vous pouvez regarder les détails de chaque fonction dans la bibliothèque standard du C.

序号函数 & 描述
1 time_t time(time_t *time);
该函数返回系统的当前日历时间,自 1970 年 1 月 1 日以来经过的秒数。如果系统没有时间,则返回 .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结构的指针。
4 clock_t clock(void);
该函数返回程序执行起(一般为程序的开头),处理器时钟所使用的时间。如果时间不可用,则返回 .1。
5 char * asctime ( const struct tm * time );
该函数返回一个指向字符串的指针,字符串包含了 time 所指向结构中存储的信息,返回形式为:day month date hours:minutes:seconds year\n\0。
6 struct tm *gmtime(const time_t *time);
该函数返回一个指向 time 的指针,time 为 tm 结构,用协调世界时(UTC)也被称为格林尼治标准时间(GMT)表示。
7 time_t mktime(struct tm *time);
该函数返回日历时间,相当于 time 所指向结构中存储的时间。
8 double difftime ( time_t time2, time_t time1 );
该函数返回 time1 和 time2 之间相差的秒数。
9 size_t strftime();
该函数可用于格式化日期和时间为指定的格式。

La date et l'heure

Les exemples suivants obtiennent la date et l'heure du système actuel, y compris l'heure locale et le temps universel coordonné (UTC).

#include <iostream>
#include <ctime>

using namespace std;

int main( )
{
   // 基于当前系统的当前日期/时间
   time_t now = time(0);
   
   // 把 now 转换为字符串形式
   char* dt = ctime(&now);

   cout << "本地日期和时间:" << dt << endl;

   // 把 now 转换为 tm 结构
   tm *gmtm = gmtime(&now);
   dt = asctime(gmtm);
   cout << "UTC 日期和时间:"<< dt << endl;
}

Lorsque le code ci-dessus est compilé et exécuté, il produit les résultats suivants:

本地日期和时间:Sat Jan  8 20:07:41 2011

UTC 日期和时间:Sun Jan  9 03:07:41 2011

Utilisez la mise en forme structure tm temps

Lorsque la structuretm avec les dates et les opérations liées au temps en C / C ++, et est particulièrement important.structure tm sous la forme de structures C pour enregistrer la date et l'heure. La plupart des fonctions liées à l'emploi du temps de la structure tm. L'exemple suivant utilise la structure tm et diverses liées aux fonctions de date et d'heure.

Avant la pratique en utilisant la structure, vous devez avoir une compréhension de base de la structure C, et de savoir comment utiliser la flèche -> opérateur pour accéder aux membres de la structure.

#include <iostream>
#include <ctime>

using namespace std;

int main( )
{
   // 基于当前系统的当前日期/时间
   time_t now = time(0);

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

   tm *ltm = localtime(&now);

   // 输出 tm 结构的各个组成部分
   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;
}

Lorsque le code ci-dessus est compilé et exécuté, il produit les résultats suivants:

Number of sec since January 1, 1970:1294548238
Year: 2011
Month: 1
Day: 8
Time: 22: 44:59