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

কিভাবে:

রুবি তার তারিখ ক্লাসের মাধ্যমে আমাদের জীবনকে সহজ করে দিয়েছে। চলুন এটিকে ব্যবহার করে দেখি।

require 'date'

date1 = Date.new(2023, 3, 14)
date2 = Date.new(2023, 3, 15)

puts date1 == date2   # আউটপুট: false
puts date1 != date2   # আউটপুট: true
puts date1 < date2    # আউটপুট: true
puts date1 > date2    # আউটপুট: false
puts date1 <= Date.today # আউটপুট: আজকের দিনের উপর নির্ভরশীল
puts date1 >= Date.today # আউটপুট: আজকের দিনের উপর নির্ভরশীল

গভীরে ডুব দেওয়া

তারিখের তুলনা নতুন কিছু নয়। এটি পূর্বাভাষক, যেমনকি পূর্ণসংখ্যাগুলি তুলনা করা, তবে এটি আরও জটিল কারণ তারিখের কয়েকটি অংশ রয়েছে—দিন, মাস, বছর। রুবিতে, স্ট্যান্ডার্ড লাইব্রেরী থেকে Date ক্লাস এই ভার বহন করে, মাস, লিপ বছর ইত্যাদি নিয়ে সামলায়।

আপনি মৌলিক তুলনা দেখেছেন: ==, !=, <, >, <=, >=. কিন্তু রুবির আরও অনেক কিছু রয়েছে গোপনে।

  • Date.parse স্ট্রিং তারিখগুলিকে বোঝা এবং রূপান্তর করতে পারে।
  • DateTime আরও নির্ভুলতা প্রদান করে, সময় এবং সময়ক্ষেত্র সমর্থন সহ।
  • ‘ActiveSupport’ মতো লাইব্রেরি (রেইলস থেকে) আরও বেশি তারিখ-সংক্রান্ত পদ্ধতি যোগ করে।

পিটফলগুলির জন্য সাবধান থাকুন:

  • সময়ক্ষেত্র সাবধান না থাকলে আপনাকে বিভ্রান্ত করতে পারে।
  • লিপ সেকেন্ডগুলি রুবির স্ট্যান্ডার্ড Date/DateTime ক্লাসগুলিতে গণনা করা হয় না।

Date ক্লাসের বিকল্পগুলি হলঃ

  • টাইমস্ট্যাম্পগুলি ব্যবহার করা এবং তাদেরকে সংখ্যা হিসেবে তুলনা করা।
  • আরও উন্নত সময় পরিচালনার জন্য ’time’ লাইব্রেরি।

তুলনা দ্রুত জটিল হয়ে ওঠে। যদি আপনি সময়সূচী সাজাচ্ছেন এবং তারিখের পরিসরগুলি তুলনা করতে হয়, অথবা পুনরাবৃত্তি ঘটনাগুলি সামলাচ্ছেন? রুবির Date এবং Time এর উপর নির্মিত উচ্চ-স্তরের সংজ্ঞাবলী প্রায়ই প্রয়োজন হয়। ActiveRecord’s between? পদ্ধতি অথবা পুনরাবৃত্তি ঘটনাগুলির জন্য ‘IceCube’ মতো গেমস প্রচুর সময় এবং মাথাব্যথা বাঁচাতে পারে।

আরও দেখুন

  • ActiveSupport’s extensions: Active Support Core Extensions
  • পুনরাবৃত্তি ঘটনাগুলির জন্য ‘IceCube’ গেম: IceCube
  • রুবিতে সময়ক্ষেত্রের সম্পূর্ণ গাইড: Timezone guides