Rumah > pembangunan bahagian belakang > C++ > Bagaimanakah C 11 Boleh Menghuraikan Rentetan Tarikh Sejarah dan Mengira Masa Berlalu?

Bagaimanakah C 11 Boleh Menghuraikan Rentetan Tarikh Sejarah dan Mengira Masa Berlalu?

Barbara Streisand
Lepaskan: 2024-12-03 16:26:16
asal
893 orang telah melayarinya

How Can C  11 Parse Historical Date Strings and Calculate Elapsed Time?

Menghuraikan Rentetan Tarikh Bersejarah dengan C 11

Pertimbangkan rentetan tarikh dalam format "Khamis Jan 9 12:35:34 2014." Matlamatnya adalah untuk menukar rentetan ini kepada perwakilan tarikh C dan menentukan masa berlalu dari tarikh tersebut. Untuk mencapai matlamat ini, kita boleh memanfaatkan ciri pustaka standard C 11.

Menggunakan ruang nama std::chrono, kita boleh mendapatkan titik masa daripada std::tm struct. Std::tm struct menyimpan maklumat tarikh dan masa, manakala ruang nama std::chrono menyediakan keupayaan manipulasi masa.

Untuk menghuraikan rentetan tarikh, kita boleh menggunakan fungsi std::get_time, yang tersedia dalam C 11 dan seterusnya. Untuk versi GCC yang lebih lama (sebelum 5), kita boleh menggunakan fungsi strptime secara alternatif. Kedua-dua fungsi mengisi std::tm struct dengan maklumat tarikh yang dihuraikan.

Setelah kita mempunyai std::tm struct, kita boleh menggunakan fungsi std::chrono::system_clock::from_time_t untuk menukar masa diwakili oleh struct ke dalam std::chrono::time_point. Time_point ini mewakili titik dalam masa pada jam sistem.

Menggunakan time_point ini, kita boleh mengira masa berlalu dari tarikh yang dihuraikan ke masa semasa. Pustaka std::chrono menyediakan pelbagai kaedah untuk manipulasi masa, membolehkan kami mengekstrak maklumat yang diperlukan seperti saat, minit, jam dan hari daripada tempoh tersebut.

Ringkasnya, memanfaatkan ruang nama std::chrono dan std::tm struct, kita boleh menghuraikan rentetan tarikh sejarah dengan berkesan dan menentukan masa berlalu daripada tarikh tersebut dengan tepat.

Atas ialah kandungan terperinci Bagaimanakah C 11 Boleh Menghuraikan Rentetan Tarikh Sejarah dan Mengira Masa Berlalu?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan