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!