Bash:
দুটি তারিখ তুলনা করা

কিভাবে:

এখানে একটি সহজ উপায় দেওয়া হলো Bash এ দুটি তারিখের তুলনা করার:

date1="2023-04-01"
date2="2023-04-15"

# তারিখগুলিকে এপকের পর থেকে সেকেন্ডে রূপান্তর করুন
sec1=$(date -d "$date1" +%s)
sec2=$(date -d "$date2" +%s)

# তারিখগুলিকে তুলনা করুন
if [ $sec1 -eq $sec2 ]; then
    echo "তারিখগুলো একই।"
elif [ $sec1 -lt $sec2 ]; then
    echo "তারিখ $date1 হলো $date2 এর থেকে আগের।"
else
    echo "তারিখ $date1 হলো $date2 এর থেকে পরের।"
fi

যদি $date2 পরের হয় তবে নমুনা আউটপুট:

তারিখ 2023-04-01 হলো 2023-04-15 এর থেকে আগের।

গভীর ডুব

ঐতিহাসিকভাবে, শেল স্ক্রিপ্টে তারিখের তুলনা করা সরাসরি সহজ ছিল না বিভিন্ন তারিখের ফরম্যাট এবং অন্তর্নির্মিত ফাংশনের অভাবের কারণে। date কমান্ড, %s দ্বারা তারিখগুলিকে Unix এপক (1970 সালের 1 জানুয়ারি 00:00:00 UTC) থেকে সেকেন্ডে রূপান্তর করা, এক আশীর্বাদ।

বিকল্প পদ্ধতির মধ্যে রয়েছে awk মতো বাহ্যিক টুল ব্যবহার করা অথবা স্ট্রিং তুলনা করা – ফরম্যাট বিভিন্ন হলে এটি ঝুঁকির। বাস্তবায়নের দিক থেকে, একটি আচ্ছন্ন হচ্ছে সময় জোন নিয়ে মোকাবিলা করা: date কমান্ডের আগে TZ=UTC যোগ করা ইউটিসি তুলনা নিশ্চিত করে।

তারিখের অঙ্ক, যেমন তারিখের মধ্যে পার্থক্য খুঁজে বের করা, জটিল হতে পারে। দিন যোগ বা বিয়োগ করা আরও date কৌশল দাবি করে। লিপ সেকেন্ড বা দিনের আলো সঞ্চয়ের পরিবর্তনের মতো কোণঠাসা ক্ষেত্রগুলি ত্রুটি আনতে পারে।

আরও দেখুন