java.time প্যাকেজটি Java 8 এ পরিচিত হয়েছে এবং এটি Date and Time API এর আধুনিক সংস্করণ। এটি পূর্ববর্তী java.util.Date এবং java.util.Calendar ক্লাসের তুলনায় অনেক বেশি কার্যকরী এবং সঠিক। LocalDate হল java.time প্যাকেজের একটি গুরুত্বপূর্ণ ক্লাস, যা তারিখ সংক্রান্ত বিভিন্ন অপারেশনকে সহজ ও সঠিকভাবে করতে সহায়তা করে।
LocalDate ক্লাসের ধারণা:
LocalDate ক্লাসটি শুধুমাত্র তারিখ (date) ধারণ করে এবং এটি সময়ের অংশ (time) বা যেকোনো টাইমজোন (timezone) সম্পর্কিত তথ্য ধারণ করে না। এটি সাধারণ তারিখ (যেমন: 2024-12-23) রাখে এবং এটি immutable। এর মানে হলো, একবার একটি LocalDate অবজেক্ট তৈরি করার পর তার মান পরিবর্তন করা সম্ভব নয়।
LocalDate এর মাধ্যমে আপনি:
- বর্তমান তারিখ বের করতে পারেন,
- নির্দিষ্ট তারিখ তৈরি করতে পারেন,
- তারিখের উপর বিভিন্ন অপারেশন করতে পারেন যেমন যোগ, বিয়োগ, কম্প্যারison ইত্যাদি।
LocalDate ক্লাসের কিছু গুরুত্বপূর্ণ মেথড:
now(): এটি বর্তমান তারিখ প্রদান করে।LocalDate currentDate = LocalDate.now(); System.out.println(currentDate); // Example: 2024-12-23of(int year, int month, int dayOfMonth): এটি একটি নির্দিষ্ট তারিখ তৈরি করে।LocalDate specificDate = LocalDate.of(2024, 12, 23); System.out.println(specificDate); // Example: 2024-12-23getYear(),getMonth(),getDayOfMonth(): এর মাধ্যমে আপনি তারিখের বছর, মাস, দিন অ্যাক্সেস করতে পারেন।int year = specificDate.getYear(); // 2024 int month = specificDate.getMonthValue(); // 12 int day = specificDate.getDayOfMonth(); // 23plusDays(long days): এটি নির্দিষ্ট সংখ্যক দিন যোগ করে।LocalDate newDate = specificDate.plusDays(5); System.out.println(newDate); // Example: 2024-12-28minusDays(long days): এটি নির্দিষ্ট সংখ্যক দিন বিয়োগ করে।LocalDate newDate = specificDate.minusDays(5); System.out.println(newDate); // Example: 2024-12-18isBefore(ChronoLocalDate other),isAfter(ChronoLocalDate other): তারিখের তুলনা করতে ব্যবহৃত হয়।LocalDate date1 = LocalDate.of(2024, 12, 23); LocalDate date2 = LocalDate.of(2025, 1, 1); System.out.println(date1.isBefore(date2)); // true System.out.println(date1.isAfter(date2)); // falsecompareTo(ChronoLocalDate other): এটি দুটি তারিখের মধ্যে তুলনা করে, ছোট হলে ঋণাত্মক, সমান হলে শূন্য এবং বড় হলে ধনাত্মক মান রিটার্ন করে।int comparison = date1.compareTo(date2); // returns a negative value because date1 is before date2
LocalDate ক্লাসের ব্যবহার উদাহরণ:
import java.time.LocalDate;
public class LocalDateExample {
public static void main(String[] args) {
// 1. Get the current date
LocalDate currentDate = LocalDate.now();
System.out.println("Current Date: " + currentDate);
// 2. Create a specific date
LocalDate specificDate = LocalDate.of(2024, 12, 23);
System.out.println("Specific Date: " + specificDate);
// 3. Get year, month, and day
int year = specificDate.getYear();
int month = specificDate.getMonthValue();
int day = specificDate.getDayOfMonth();
System.out.println("Year: " + year + ", Month: " + month + ", Day: " + day);
// 4. Add 5 days to the specific date
LocalDate newDate = specificDate.plusDays(5);
System.out.println("New Date after adding 5 days: " + newDate);
// 5. Subtract 5 days from the specific date
LocalDate previousDate = specificDate.minusDays(5);
System.out.println("New Date after subtracting 5 days: " + previousDate);
// 6. Compare two dates
LocalDate date1 = LocalDate.of(2024, 12, 23);
LocalDate date2 = LocalDate.of(2025, 1, 1);
System.out.println("Is date1 before date2? " + date1.isBefore(date2));
System.out.println("Is date1 after date2? " + date1.isAfter(date2));
// 7. Check if two dates are equal
LocalDate date3 = LocalDate.of(2024, 12, 23);
System.out.println("Is date1 equal to date3? " + date1.equals(date3));
}
}
আউটপুট:
Current Date: 2024-12-23
Specific Date: 2024-12-23
Year: 2024, Month: 12, Day: 23
New Date after adding 5 days: 2024-12-28
New Date after subtracting 5 days: 2024-12-18
Is date1 before date2? true
Is date1 after date2? false
Is date1 equal to date3? true
LocalDate এর সুবিধা:
- Immutable:
LocalDateঅবজেক্ট পরিবর্তনযোগ্য নয়, যা সিস্টেমের জন্য নিরাপদ এবং ব্যবহার করা সহজ। - Time Zone Independence: এটি টাইমজোন সম্পর্কিত কোনো তথ্য ধারণ করে না, ফলে এটি শুধুমাত্র তারিখ (date) মান পরিচালনা করতে সুবিধাজনক।
- Easy Date Operations: সহজে দিন যোগ বা বিয়োগ করতে পারেন এবং বিভিন্ন তারিখ সম্পর্কিত অপারেশন করতে পারেন।
- Clear API:
LocalDateAPI খুবই পরিষ্কার এবং সহজবোধ্য। এতে time zone বা time এর কোনো জটিলতা নেই, শুধুমাত্র date এর উপরে কাজ করা হয়। - Strong Typing:
LocalDateব্যবহার করে টাইপ সেফটি নিশ্চিত করা যায়, যার ফলে টাইপ সম্পর্কিত ত্রুটি কম হয়।
LocalDate ক্লাসটি Java 8 থেকে ব্যবহার করা হয়ে থাকে এবং এটি date-only মান সঞ্চয় ও প্রক্রিয়াকরণের জন্য অত্যন্ত কার্যকরী। এটি java.time প্যাকেজের একটি গুরুত্বপূর্ণ ক্লাস যা তারিখ সম্পর্কিত কাজগুলি খুব সহজ, সঠিক এবং টাইপ সেফভাবে করতে সক্ষম। LocalDate দিয়ে আপনি কোনো টাইমজোন বা সময়ের অংশ ছাড়াই শুধু তারিখের উপর বিভিন্ন অপারেশন করতে পারেন।
Read more