Clojure:
ভবিষ্যত বা অতীতের তারিখ গণনা করা
কিভাবে:
Clojure এ, আপনি মূলত তারিখ অপারেশানের জন্য clj-time
লাইব্রেরি ব্যবহার করবেন। এখানে একটি দ্রুত ডেমো দেওয়া হল:
(require '[clj-time.core :as time])
(require '[clj-time.coerce :as coerce])
(require '[clj-time.periodic :as periodic])
;; বর্তমান তারিখে ৫ দিন যোগ করা
(let [now (time/now)
five-days (time/plus now (time/days 5))]
(str "এখন থেকে পাঁচ দিন: " (coerce/to-string five-days)))
;; একটি নির্দিষ্ট তারিখ থেকে ১০ দিন বাদ দেওয়া
(let [specific-date (coerce/to-date-time "2023-03-01T12:00:00.000Z")
ten-days-ago (time/minus specific-date (time/days 10))]
(str "১ মার্চ, ২০২৩ এর আগের দশ দিন: " (coerce/to-string ten-days-ago)))
নমুনা আউটপুট:
"এখন থেকে পাঁচ দিন: ২০২৩-০৩-২৩T০৮:০০:০০.০০০Z"
"১ মার্চ, ২০২৩ এর আগের দশ দিন: ২০২৩-০২-১৯T১২:০০:০০.০০০Z"
গভীরে যাওয়া:
প্রারম্ভিক দিনগুলিতে, কোডাররা জাভার Date
এবং Calendar
ক্লাসগুলি ব্যবহার করতেন। কিন্তু, আসুন সৎ হই, তারা একটি বিরক্তি - বাচাল ও ভুলের প্রবণ। clj-time
লাইব্রেরি কিছুটা হলেও সাহস যুগিয়েছে, যেটা Joda-Time’s ডেভেলপার-ফ্রেন্ডলি API কে ঘিরে রেখেছে।
কোনো বিকল্প? জাভা ৮ তে java.time
(JSR-310) চালু করা হয়, যা বেশ ভালো, কিন্তু Clojure’s এর বিশ্বে, আমরা এখনো clj-time
এর সাথে আরামদায়ক।
তারিখ গণনা করার সময়, আপনি “দিন” এবং “মাস” এর মতো ধারণাগুলির জন্য পিরিয়ড এবং নির্দিষ্ট মিলিসেকেন্ড গণনার জন্য সময়কাল ব্যবহার করেন। মনে রাখবেন সময় অঞ্চল - তারিখ এবং সময় সময় অঞ্চলের নিয়ম অনুসারে নাটকীয়ভাবে পরিবর্তন হতে পারে, এবং ডেলাইট সেভিং টাইম (DST) আপনার কাজে বাধা দিতে পারে।
আরও দেখুন
clj-time
GitHub রেপো: https://github.com/clj-time/clj-time- Clojure’s
java-time
: https://github.com/dm3/clojure.java-time