Latest web development tutorials

C ++ Tanggal & Waktu

C ++ perpustakaan standar tidak menyediakan apa yang disebut jenis tanggal. C ++ mewarisi struktur dan fungsi bahasa C untuk tanggal dan waktu operasi. Untuk menggunakan tanggal dan waktu yang terkait fungsi dan struktur perlu referensi file header <kriminal> di program C ++.

Ada empat terkait waktujenis: clock_t, time_t, size_t dan tm.Jenis clock_t, size_t dan time_t waktu dan tanggal sistem dapat direpresentasikan sebagai semacam integer.

Jenis strukturtm dengan tanggal dan waktu dalam bentuk C struktur struktur tm disimpan didefinisikan sebagai berikut:

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; // 夏令时
}

Berikut ini adalah C / C ++ fungsi pada tanggal dan waktu yang penting. Semua fungsi ini merupakan bagian dari C / C ++ library standar, Anda dapat melihat rincian dari masing-masing fungsi dalam C ++ library standar.

序号函数 & 描述
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();
该函数可用于格式化日期和时间为指定的格式。

Saat tanggal dan waktu

Contoh berikut mendapatkan tanggal dan waktu sistem saat ini, termasuk waktu setempat dan Coordinated Universal Time (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;
}

Ketika kode di atas dikompilasi dan dijalankan, menghasilkan hasil sebagai berikut:

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

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

Menggunakan struktur tm waktu format

Ketika strukturtm dengan tanggal dan operasi yang berhubungan dengan waktu di C / C ++, dan sangat penting.struktur tm dalam bentuk struktur C untuk menyimpan tanggal dan waktu. Sebagian besar fungsi terkait waktu menggunakan struktur tm. Contoh berikut ini menggunakan struktur tm dan berbagai terkait dengan tanggal dan waktu fungsi.

Sebelum latihan menggunakan struktur, Anda harus memiliki pemahaman dasar tentang struktur C, dan tahu bagaimana menggunakan panah -> operator untuk mengakses anggota struktur.

#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;
}

Ketika kode di atas dikompilasi dan dijalankan, menghasilkan hasil sebagai berikut:

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