স্ট্রিং থেকে তারিখ পার্স করা

C:
স্ট্রিং থেকে তারিখ পার্স করা

কিভাবে:

C সরাসরি স্ট্রিং থেকে তারিখ পার্স করার জন্য বিল্ট-ইন উপায় প্রদান করে না, তাই আমরা প্রায়ই POSIX সিস্টেমের <time.h> লাইব্রেরিতে উপলভ্য strptime ফাংশনের আশ্রয় নিই। এই ফাংশনটি আমাদের ইনপুট স্ট্রিংয়ের প্রত্যাশিত ফর্ম্যাট নির্দিষ্ট করতে এবং এটিকে একটি struct tm এ পার্স করতে সক্ষম করে, যা ক্যালেন্ডার তারিখ এবং সময়কে এর উপাদানগুলিতে ভেঙ্গে প্রকাশ করে।

এখানে স্ট্রিং থেকে তারিখ পার্স করার জন্য strptime ব্যবহার করার একটি সাধারণ উদাহরণ দেওয়া হল:

#include <time.h>
#include <stdio.h>

int main() {
    const char *dateStr = "2023-04-01";
    struct tm tm;
    char buf[255];

    // তারিখের স্ট্রিংটি struct tm এ পার্স করা
    if (strptime(dateStr, "%Y-%m-%d", &tm) == NULL) {
        printf("তারিখ পার্স করা ব্যর্থ।\n");
    } else {
        // পাঠ্য ফর্ম্যাটে তারিখ প্রিন্ট করার জন্য strftime ব্যবহার করা
        strftime(buf, sizeof(buf), "%A, %B %d, %Y", &tm);
        printf("পার্স করা তারিখ: %s\n", buf);
    }

    return 0;
}

এই প্রোগ্রামের জন্য নমুনা আউটপুট হবে:

পার্স করা তারিখ: শনিবার, এপ্রিল 01, 2023

strptime প্যাটার্ন মিলে না বা অপ্রত্যাশিত ইনপুটের সম্মুখীন হওয়ার মতো সম্ভাব্য ত্রুটিগুলি হ্যান্ডল করা অপরিহার্য।

গভীর ডুব

strptime ফাংশন, শক্তিশালী হলেও, স্ট্যান্ডার্ড C লাইব্রেরির অংশ নয় এবং প্রধানত লিনাক্স এবং UNIX এর মতো POSIX-অনুগত সিস্টেমগুলিতে পাওয়া যায়। এই সীমাবদ্ধতা মানে যে, strptime বিল্ট-ইন ফাংশনটি ব্যবহার করে স্ট্রিং থেকে তারিখ পার্স করার সুযোগ প্রদান করা প্রোগ্রামগুলি উইন্ডোজের মতো নন-POSIX সিস্টেমে সংগ্রহযোগ্য হতে পারে না, অতিরিক্ত সামঞ্জস্যতা স্তর বা লাইব্রেরিগুলি ব্যতীত।

ঐতিহাসিকভাবে, বিভিন্ন লোকেল এবং টাইম জোনগুলি বিবেচনা করে, C ভাষায় তারিখ এবং সময় হ্যান্ডল করা অনেক ম্যানুয়াল ম্যানিপুলেশন এবং যত্নের প্রয়োজন হত। C++ এর <chrono> লাইব্রেরি এবং C++ এর জন্য Howard Hinnant’s তারিখ লাইব্রেরির মতো আধুনিক বিকল্প এবং এক্সটেনশনগুলি, সহিত তারিখ এবং সময় ম্যানিপুলেশনের জন্য আরও বেশি রোবাস্ট সমাধানগুলি প্রদান করে, যা পার্সিং সহ। এই লাইব্রেরিগুলি সাধারণত বিস্তৃত পরিসরের তারিখের ফরম্যাটগুলি, টাইম জোনগুলি, এবং ত্রুটি হ্যান্ডলিং পদ্ধতির জন্য উন্নত সমর্থন সরবরাহ করে, যা বিস্তৃত তারিখ এবং সময় ম্যানিপুলেশন ক্ষমতার প্রয়োজন থাকা নতুন প্রকল্পগুলিতে প্রাধান্য পায়।

তবে, C ভাষায় স্ট্রিং থেকে তারিখ পার্স করা কিভাবে বোঝা উপকারী হতে পারে, বিশেষ করে যখন এমন প্রকল্পগুলিতে কাজ করা হয় যেখানে এই আধুনিক টুলগুলি উপলভ্য নয় অথবা কঠোর C প্রোগ্রামিং পরিবেশের সীমাবদ্ধতার মধ্যে কাজ করার সময়।