ভবিষ্যত বা অতীতের তারিখ গণনা করা

Java:
ভবিষ্যত বা অতীতের তারিখ গণনা করা

কিভাবে:

import java.time.LocalDate;
import java.time.temporal.ChronoUnit;

public class DateCalculation {
    public static void main(String[] args) {
        LocalDate today = LocalDate.now();
        // বর্তমান তারিখে 10 দিন যোগ করুন
        LocalDate futureDate = today.plusDays(10);
        System.out.println("ভবিষ্যত তারিখ: " + futureDate);

        // বর্তমান তারিখ থেকে 2 মাস বাদ দিন
        LocalDate pastDate = today.minus(2, ChronoUnit.MONTHS);
        System.out.println("অতীত তারিখ: " + pastDate);
    }
}

আউটপুট এরকম দেখাবে:

ভবিষ্যত তারিখ: 2023-04-30
অতীত তারিখ: 2023-02-20

গভীর ভাবনা

জাভা 8 আসার আগে, তারিখ নিয়ে কাজ করা কঠিন ছিল। পুরানো ক্লাস সমূহ যেমন java.util.Date এবং java.util.Calendar বাগে ভরা এবং ব্যবহারে অসুবিধাজনক ছিল। জাভা 8-তে চালু করা java.time প্যাকেজটি এই সমস্যা দূর করেছে, LocalDate, LocalTime, এবং ZonedDateTime এর মত ভালোভাবে সাজানো ক্লাসগুলির মাধ্যমে।

বিকল্প? জাভা 8 এর পূর্বে, জোডা-টাইমের মতো থার্ড-পার্টি লাইব্রেরিগুলি সাধারণ ছিল। আজকাল, আপনি এগুলি ব্যবহার করতে পারেন, তবে স্ট্যান্ডার্ড java.time ব্যবহার করা পরামর্শ দেওয়া হয় কারণ এটি জাভার একটি অফিসিয়াল অংশ এবং এটি দিনের আলো সঞ্চয়, সময় অঞ্চল, এবং লিপ বছরগুলিকে সুন্দরভাবে সামলায়।

তারিখের হিসাবনিকাশ কোডিং করার সময়, আপনার প্রয়োজনে সময় অঞ্চল বিবেচনা করুন। UTC এর জন্য, LocalDate এর পরিবর্তে Instant ব্যবহার করুন। নির্দিষ্ট অঞ্চলের জন্য, সাধারণত ZonedDateTime ব্যবহার করা হয়। মনে রাখবেন, তারিখ-সময়ের অপারেশনগুলি চেইন করা যায়, যেমন date.minusWeeks(1).plusHours(3) এর মতো, যা আপনার কোডকে আরও পরিষ্কার করে তোলে।

দেখুন এছাড়াও

  1. java.time প্যাকেজ অভিধান: Oracle Docs
  2. ZonedDateTime এর সাথে সময় অঞ্চল সামলানো: Oracle ZonedDateTime
  3. java.time.format.DateTimeFormatter এর জন্য অফিসিয়াল তারিখ এবং সময় প্যাটার্নস: Oracle DateTimeFormatter