Time এবং Date Manipulation: std::chrono, std::date, std::duration

Utility Libraries (ইউটিলিটি লাইব্রেরি) - সি++ স্ট্যান্ডার্ড লাইব্রেরি (C++ Standard Library) - Computer Programming

371

সি++ এ সময় এবং তারিখ ম্যানিপুলেশনের জন্য C++11 থেকে std::chrono লাইব্রেরি যোগ করা হয়েছে, যা সময় নির্ধারণ, পরিমাপ, এবং সময়কাল সম্পর্কিত কাজগুলো সহজে করতে সহায়তা করে। C++20 এ std::chrono::date যুক্ত করা হয়েছে, যা আরও উন্নত সময় ও তারিখ ম্যানিপুলেশন সুবিধা প্রদান করে। এখানে std::chrono, std::date, এবং std::duration এর প্রধান উপাদান ও ব্যবহার নিয়ে আলোচনা করা হলো।


১. std::chrono

std::chrono হল C++ স্ট্যান্ডার্ড লাইব্রেরির একটি অংশ যা সময় ম্যানিপুলেশন ও পরিমাপের জন্য ব্যবহৃত হয়। এতে বিভিন্ন ক্লাস ও ফাংশন রয়েছে যা টাইম পয়েন্ট, টাইম ডিউরেশন এবং ক্লক ব্যবহার করে সময়ের বিভিন্ন পরিসীমা নিয়ে কাজ করতে সক্ষম করে।

প্রধান উপাদানগুলো:

  • Clocks: std::chrono::system_clock, std::chrono::steady_clock, এবং std::chrono::high_resolution_clock
  • Time Point: একটি নির্দিষ্ট সময় নির্দেশ করে।
  • Duration: সময়ের একটি নির্দিষ্ট সময়কাল।

উদাহরণ:

#include <iostream>
#include <chrono>

int main() {
    // বর্তমান সময় পাওয়া
    auto start = std::chrono::system_clock::now();

    // কিছু বিলম্বের জন্য একটি লুপ
    for (int i = 0; i < 1000000; ++i) {}

    // বিলম্ব পরবর্তী সময় পাওয়া
    auto end = std::chrono::system_clock::now();

    // সময়ের ব্যবধান গণনা করা
    auto elapsed = std::chrono::duration_cast<std::chrono::milliseconds>(end - start);
    std::cout << "Elapsed time: " << elapsed.count() << " milliseconds" << std::endl;

    return 0;
}

এখানে system_clock বর্তমান সময় সংগ্রহ করে এবং duration_cast ব্যবহার করে সময়ের ব্যবধান গণনা করে।


২. std::chrono::date (C++20 থেকে)

std::chrono::date C++20 এ যোগ করা হয়, যা তারিখ ম্যানিপুলেশন সহজ করে। এটি তারিখ ও সময় সম্পর্কিত কাজগুলোতে সহায়ক, যেমন নির্দিষ্ট তারিখ সেট করা, সময়ের ব্যবধান হিসাব করা, এবং ক্যালেন্ডার ভিত্তিক ম্যানিপুলেশন।

উদাহরণ:

#include <iostream>
#include <chrono>

int main() {
    using namespace std::chrono;
    using namespace std::chrono_literals;

    // নির্দিষ্ট তারিখ এবং সময় সেট করা
    year_month_day today = floor<days>(system_clock::now());
    std::cout << "Today's date: " << today << std::endl;

    // নির্দিষ্ট সময় পরবর্তী তারিখ
    year_month_day next_week = today + days{7};
    std::cout << "Next week's date: " << next_week << std::endl;

    return 0;
}

উপরের উদাহরণে, year_month_day এবং days টাইপ ব্যবহার করে বর্তমান তারিখ পাওয়া হয়েছে এবং এক সপ্তাহ পরে তারিখ গণনা করা হয়েছে।


৩. std::chrono::duration

std::chrono::duration বিভিন্ন সময়কালকে গণনা করতে ব্যবহৃত হয়। এটি সাধারণত std::chrono-এর অন্য টাইপগুলোর সাথে ব্যবধান মাপতে ব্যবহার করা হয়, যেমন সেকেন্ড, মিনিট, ঘন্টা, মিলিসেকেন্ড ইত্যাদি।

প্রধান টাইপ:

  • seconds: সেকেন্ডে সময়কাল।
  • milliseconds: মিলিসেকেন্ডে সময়কাল।
  • microseconds: মাইক্রোসেকেন্ডে সময়কাল।
  • nanoseconds: ন্যানোসেকেন্ডে সময়কাল।

উদাহরণ:

#include <iostream>
#include <chrono>

int main() {
    using namespace std::chrono;

    // 3 সেকেন্ড সময়কাল
    duration<int> three_seconds(3);
    std::cout << "Three seconds: " << three_seconds.count() << " seconds" << std::endl;

    // মাইক্রোসেকেন্ডের একটি সময়কাল তৈরি করা
    auto time_in_milliseconds = duration_cast<milliseconds>(three_seconds);
    std::cout << "Three seconds in milliseconds: " << time_in_milliseconds.count() << " milliseconds" << std::endl;

    return 0;
}

এখানে duration একটি সময়কাল হিসেবে কাজ করে এবং duration_cast ব্যবহার করে এটিকে ভিন্ন টাইম ইউনিটে রূপান্তর করা হয়েছে।


সময় ও তারিখ ম্যানিপুলেশন: কিছু সাধারণ ব্যবহার

১. টাইম পয়েন্ট মাপা: std::chrono::system_clock এবং std::chrono::steady_clock ব্যবহার করে নির্দিষ্ট টাইম পয়েন্ট মাপা।
২. টাইম ইন্টারভ্যাল পরিমাপ: নির্দিষ্ট সময়ের ব্যবধান বের করতে duration ব্যবহার করা।
৩. তারিখ ক্যালকুলেশন: std::chrono::date ব্যবহার করে নির্দিষ্ট তারিখ ম্যানিপুলেশন করা।
৪. কনভার্সন: duration_cast ব্যবহার করে সময়ের ভিন্ন ইউনিটে রূপান্তর করা।


সারাংশ

  • std::chrono: সময় নির্ধারণ, পরিমাপ, এবং ম্যানিপুলেশনের জন্য ব্যবহৃত হয়।
  • std::chrono::date: তারিখ নির্ধারণ ও ক্যালেন্ডার সম্পর্কিত কাজের জন্য C++20 থেকে সংযুক্ত।
  • std::chrono::duration: সময়কাল মাপার জন্য ব্যবহৃত, যা বিভিন্ন ইউনিটে রূপান্তরযোগ্য।

std::chrono, std::date, এবং std::duration C++ এ সময় ও তারিখ ম্যানিপুলেশনের শক্তিশালী টুল এবং এগুলো সময়মিতিবিষয়ক কাজগুলিকে সহজতর ও আরও নির্ভরযোগ্য করে তোলে।

Content added By
Promotion

Are you sure to start over?

Loading...