C++ Tarikh & Masa


Pustaka standard C++ tidak menyediakan jenis tarikh yang dipanggil. C++ mewarisi struktur dan fungsi bahasa C untuk operasi tarikh dan masa. Untuk menggunakan fungsi dan struktur berkaitan tarikh dan masa, fail pengepala <ctime> perlu dirujuk dalam program C++.

mempunyai empat jenis berkaitan masa: clock_t, time_t, size_t dan tm. Jenis clock_t, size_t, dan time_t mewakili masa dan tarikh sistem sebagai integer tertentu.

Jenis strukturtm Simpan tarikh dan masa dalam bentuk struktur C Definisi struktur tm adalah seperti 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 adalah mengenai tarikh dan masa dalam. C/C++ fungsi penting. Semua fungsi ini adalah sebahagian daripada perpustakaan standard C/C++ Anda boleh menyemak butiran setiap fungsi dalam perpustakaan standard C++.

Nombor siriFungsi & Perihalan
1
序号函数 & 描述
1time_t time(time_t *time);
该函数返回系统的当前日历时间,自 1970 年 1 月 1 日以来经过的秒数。如果系统没有时间,则返回 .1。
2char *ctime(const time_t *time);
该返回一个表示当地时间的字符串指针,字符串形式 day month year hours:minutes:seconds yearn
3struct tm *localtime(const time_t *time);
该函数返回一个指向表示本地时间的 tm 结构的指针。
4clock_t clock(void);
该函数返回程序执行起(一般为程序的开头),处理器时钟所使用的时间。如果时间不可用,则返回 .1。
5char * asctime ( const struct tm * time );
该函数返回一个指向字符串的指针,字符串包含了 time 所指向结构中存储的信息,返回形式为:day month date hours:minutes:seconds yearn。
6struct tm *gmtime(const time_t *time);
该函数返回一个指向 time 的指针,time 为 tm 结构,用协调世界时(UTC)也被称为格林尼治标准时间(GMT)表示。
7time_t mktime(struct tm *time);
该函数返回日历时间,相当于 time 所指向结构中存储的时间。
8double difftime ( time_t time2, time_t time1 );
该函数返回 time1 和 time2 之间相差的秒数。
9size_t strftime();
该函数可用于格式化日期和时间为指定的格式。
time_t time(time_t *time);<🎜>
Fungsi ini mengembalikan masa kalendar semasa sistem sejak 1 Januari 1970 bilangan saat berlalu. Jika sistem tidak mempunyai masa, .1 dikembalikan.
2<🎜>char *ctime(const time_t *time);<🎜>
Ini mengembalikan aksara yang mewakili waktu tempatan Penunjuk rentetan, format rentetanhari bulan tahun jam:minit:saat rindu

Tarikh dan masa semasa

Contoh berikut mendapat tarikh dan masa sistem semasa, termasuk waktu tempatan dan waktu universal yang diselaraskan (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;
}

Apabila kod di atas disusun dan dilaksanakan, ia menghasilkan keputusan berikut:

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

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

Formatkan masa menggunakan struct tm

tm struct Ia adalah amat penting apabila berurusan dengan operasi berkaitan tarikh dan masa dalam C/C++. Struktur tm memegang tarikh dan masa sebagai struktur C. Kebanyakan fungsi berkaitan masa menggunakan struktur tm. Contoh berikut menggunakan struktur tm dan pelbagai fungsi berkaitan tarikh dan masa.

Sebelum berlatih menggunakan struktur, anda perlu mempunyai pemahaman asas tentang struktur C dan mengetahui cara menggunakan anak panah ->

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

Apabila kod di atas disusun dan dilaksanakan, ia menghasilkan keputusan berikut:

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