البرمجة

تنسيق التاريخ والوقت في C++ باستخدام الفواصل

في لغة البرمجة C++، يمكنك إدراج الفواصل بين الأحرف في السلسلة باستخدام عدة طرق، وفي هذا السياق، سنتناول كيف يمكنك إضافة الفواصل لتنسيق سلسلة الأحرف الخاصة بالتاريخ والوقت. لحل هذا التحدي، يمكنك استخدام مكتبة وتحويل السلسلة إلى نوع مناسب للتعامل مع التاريخ والوقت.

لنقم أولاً بتحويل السلسلة إلى نوع يعترف بالتاريخ والوقت، مثل std::tm. بعد ذلك، يمكننا استخدام std::put_time لتنسيق التاريخ والوقت كما نريد. اليك مثال على كيفية تحقيق ذلك في C++:

cpp
#include #include #include #include int main() { std::string inputString = "20150410 121416"; // قم بتحويل السلسلة إلى نوع std::tm std::tm timeStruct = {}; std::istringstream iss(inputString); iss >> std::get_time(&timeStruct, "%Y%m%d %H%M%S"); // قم بتنسيق التاريخ والوقت باستخدام std::put_time std::ostringstream oss; oss << std::put_time(&timeStruct, "%Y%m%d %H:%M:%S"); // اطبع الناتج المطلوب std::cout << "Output: " << oss.str() << std::endl; return 0; }

تحل هذه الشيفرة المشكلة التي طرحتها، حيث يتم تحويل السلسلة إلى نوع std::tm ومن ثم يتم تنسيقها باستخدام std::put_time بتضمين الفواصل كما ترغب.

يجب عليك أن تأخذ في اعتبارك أن هذا هو مثال بسيط، وقد تحتاج إلى تعديلات بناءً على طريقة تخزين الوقت والتاريخ في تطبيقك الفعلي.

المزيد من المعلومات

بالطبع، دعنا نوسع على الحلاقة البرمجية التي قدمتها سابقًا لفهم أعمق حول كيفية تحويل السلسلة إلى تاريخ ووقت في C++.

في المثال السابق، تم استخدام std::istringstream لتحويل السلسلة إلى نوع std::tm. يمثل std::tm هيكل بيانات يحتوي على معلومات حول التاريخ والوقت، مثل السنة، الشهر، اليوم، الساعة، الدقيقة، والثانية.

cpp
std::tm timeStruct = {}; std::istringstream iss(inputString); iss >> std::get_time(&timeStruct, "%Y%m%d %H%M%S");

يستخدم std::get_time لفهم التنسيق المتوقع للتاريخ والوقت في السلسلة، وفي هذه الحالة %Y يشير إلى السنة، %m إلى الشهر، %d إلى اليوم، %H إلى الساعة، %M إلى الدقيقة، و %S إلى الثانية.

بعد ذلك، تم استخدام std::ostringstream و std::put_time لتنسيق الوقت والتاريخ بشكل جديد مع إضافة الفواصل:

cpp
std::ostringstream oss; oss << std::put_time(&timeStruct, "%Y%m%d %H:%M:%S");

هنا %Y، %m، %d، %H، %M، و %S تشير إلى نفس المكونات ولكن بتنسيق جديد يشمل الفواصل بينها.

هذا المثال يعتمد على مكتبة و لإجراء عمليات التحويل بين السلسلة ونوع std::tm. يجب عليك أن تتأكد من تضمين هذه المكتبات في برنامجك الخاص.

زر الذهاب إلى الأعلى