Java.time প্যাকেজ (যেটি Java 8 এ পরিচিতি লাভ করেছে) ডেট এবং টাইম সম্পর্কিত জটিলতা সমাধান করার জন্য একটি শক্তিশালী API সরবরাহ করে। এর মধ্যে Period এবং Duration ক্লাস দুটি গুরুত্বপূর্ণ উপাদান যা সময়ের পার্থক্য (difference) বের করার জন্য ব্যবহৃত হয়। এই দুটি ক্লাসের মাধ্যমে আপনি তারিখের পার্থক্য (যেমন, বছর, মাস, দিন) এবং সময় (ঘণ্টা, মিনিট, সেকেন্ড) এর পার্থক্য বের করতে পারবেন।
1. Period ক্লাস:
Period ক্লাসটি তারিখের পার্থক্য (date-based) বের করার জন্য ব্যবহৃত হয়। এটি বছরের, মাসের, এবং দিনের পার্থক্য হিসাব করতে ব্যবহৃত হয়। এটি সাধারণত LocalDate অবজেক্টের মধ্যে পার্থক্য বের করার জন্য ব্যবহার করা হয়।
Period ক্লাসের ব্যবহার:
import java.time.*;
public class PeriodExample {
public static void main(String[] args) {
// Create two LocalDate objects
LocalDate startDate = LocalDate.of(2024, 1, 1); // Start date: 1st January 2024
LocalDate endDate = LocalDate.of(2024, 12, 31); // End date: 31st December 2024
// Calculate the period between two dates
Period period = Period.between(startDate, endDate);
// Output the period
System.out.println("Period: " + period.getYears() + " years " + period.getMonths() + " months " + period.getDays() + " days");
}
}
আউটপুট:
Period: 0 years 11 months 30 days
ব্যাখ্যা:
Period.between(startDate, endDate): এই মেথডটি দুটিLocalDateঅবজেক্টের মধ্যে পার্থক্য বের করে, যাPeriodআকারে ফেরত দেয়।getYears(),getMonths(), এবংgetDays(): এটিPeriodথেকে বছর, মাস এবং দিনের মান বের করে।
2. Duration ক্লাস:
Duration ক্লাসটি সময় (time-based) পার্থক্য বের করার জন্য ব্যবহৃত হয়। এটি LocalTime, LocalDateTime, এবং Instant অবজেক্টের মধ্যে পার্থক্য বের করার জন্য ব্যবহৃত হয়। এটি ঘণ্টা, মিনিট, সেকেন্ড, মিলিসেকেন্ড, মাইক্রোসেকেন্ড এবং ন্যানোসেকেন্ডের পার্থক্য হিসাব করে।
Duration ক্লাসের ব্যবহার:
import java.time.*;
public class DurationExample {
public static void main(String[] args) {
// Create two LocalTime objects
LocalTime startTime = LocalTime.of(10, 15); // Start time: 10:15
LocalTime endTime = LocalTime.of(14, 30); // End time: 14:30
// Calculate the duration between two times
Duration duration = Duration.between(startTime, endTime);
// Output the duration in hours and minutes
System.out.println("Duration: " + duration.toHours() + " hours " + duration.toMinutes() % 60 + " minutes");
}
}
আউটপুট:
Duration: 4 hours 15 minutes
ব্যাখ্যা:
Duration.between(startTime, endTime): এটি দুটিLocalTimeঅবজেক্টের মধ্যে সময়ের পার্থক্য বের করে, যাDurationআকারে ফেরত দেয়।toHours()এবংtoMinutes(): এটিDurationথেকে ঘণ্টা এবং মিনিটের মান বের করে।
Period এবং Duration এর মধ্যে পার্থক্য:
| Criteria | Period | Duration |
|---|---|---|
| Type | Date-based (year, month, day) | Time-based (hours, minutes, seconds, etc.) |
| Used With | LocalDate, Year, YearMonth | LocalTime, LocalDateTime, Instant |
| Example | Period.ofMonths(5) | Duration.ofHours(3) |
| Calculation | Year, Month, Day difference | Hour, Minute, Second, Millisecond difference |
| Supported Units | Year, Month, Day | Hours, Minutes, Seconds, Milliseconds, Nanoseconds |
3. Example: Combining Period and Duration:
একই সময়ে যদি তারিখ এবং সময়ের পার্থক্য বের করতে হয়, তবে আপনি Period এবং Duration উভয়ই ব্যবহার করতে পারেন।
import java.time.*;
public class PeriodDurationExample {
public static void main(String[] args) {
// Calculate Period between two dates
LocalDate startDate = LocalDate.of(2024, 1, 1);
LocalDate endDate = LocalDate.of(2024, 12, 31);
Period period = Period.between(startDate, endDate);
// Calculate Duration between two times
LocalTime startTime = LocalTime.of(10, 15);
LocalTime endTime = LocalTime.of(14, 30);
Duration duration = Duration.between(startTime, endTime);
// Print results
System.out.println("Period: " + period.getYears() + " years " + period.getMonths() + " months " + period.getDays() + " days");
System.out.println("Duration: " + duration.toHours() + " hours " + duration.toMinutes() % 60 + " minutes");
}
}
আউটপুট:
Period: 0 years 11 months 30 days
Duration: 4 hours 15 minutes
ব্যাখ্যা:
- এখানে
Periodতারিখের পার্থক্য বের করছে (১১ মাস ৩০ দিন)। Durationসময়ের পার্থক্য বের করছে (৪ ঘণ্টা ১৫ মিনিট)।
PeriodএবংDurationহল Java 8-এর java.time প্যাকেজের দুটি গুরুত্বপূর্ণ ক্লাস যা তারিখ এবং সময়ের পার্থক্য বের করতে ব্যবহৃত হয়।Periodতারিখের পার্থক্য (বছর, মাস, দিন) হিসাব করতে ব্যবহৃত হয়, এবংDurationসময়ের পার্থক্য (ঘণ্টা, মিনিট, সেকেন্ড, মিলিসেকেন্ড) হিসাব করতে ব্যবহৃত হয়।- Java 8 এর
java.timeপ্যাকেজটি তারিখ এবং সময়ের ব্যবস্থাপনা অনেক সহজ এবং নির্ভুল করেছে, বিশেষ করে যখন আপনি পার্থক্য বের করতে চান।
Period হল Java 8 এ java.time প্যাকেজের একটি ক্লাস যা তারিখের পার্থক্য (date-based) গণনা করার জন্য ব্যবহৃত হয়। এটি year, month, and day হিসেবে পার্থক্য বের করে এবং এটি immutable (অপরিবর্তনশীল) এবং thread-safe।
Period ক্লাসের মূল উদ্দেশ্য হচ্ছে দুটি LocalDate, LocalDateTime, বা ZonedDateTime এর মধ্যে তারিখের পার্থক্য বের করা।
Period ক্লাসের বৈশিষ্ট্য:
- এটি বছর, মাস এবং দিনের পার্থক্য নির্ধারণ করে।
- এটি শুধুমাত্র date-based পার্থক্য হিসাব করে, অর্থাৎ সময়ের পার্থক্য (ঘণ্টা, মিনিট, সেকেন্ড) বিবেচনা করা হয় না। সময়ের পার্থক্য গণনা করতে
Durationব্যবহার করতে হয়। Periodক্লাসের মধ্যে আপনিgetYears(),getMonths(), এবংgetDays()মেথডের মাধ্যমে পার্থক্যের মান পেতে পারেন।
Period কিভাবে কাজ করে?
Period ক্লাসের কিছু গুরুত্বপূর্ণ মেথড:
between(): দুটি তারিখের মধ্যে পার্থক্য বের করতে ব্যবহৃত হয়।getYears(): পার্থক্যে বছর কত তা ফেরত দেয়।getMonths(): পার্থক্যে মাস কত তা ফেরত দেয়।getDays(): পার্থক্যে দিন কত তা ফেরত দেয়।plus()এবংminus(): তারিখে বছর, মাস বা দিন যোগ বা বিয়োগ করার জন্য ব্যবহৃত হয়।
Period ব্যবহার করার উদাহরণ:
১. দুটি তারিখের মধ্যে পার্থক্য বের করা:
import java.time.*;
public class PeriodExample {
public static void main(String[] args) {
// Create two LocalDate objects
LocalDate startDate = LocalDate.of(2020, 1, 1); // 1st January 2020
LocalDate endDate = LocalDate.of(2024, 12, 31); // 31st December 2024
// Calculate the period between the two dates
Period period = Period.between(startDate, endDate);
// Print the period
System.out.println("Years: " + period.getYears());
System.out.println("Months: " + period.getMonths());
System.out.println("Days: " + period.getDays());
}
}
আউটপুট:
Years: 4
Months: 11
Days: 30
ব্যাখ্যা:
Period.between(startDate, endDate): এটিstartDateএবংendDateএর মধ্যে পার্থক্য বের করে। এই ক্ষেত্রে পার্থক্য হলো ৪ বছর ১১ মাস ৩০ দিন।getYears(),getMonths(), এবংgetDays()এর মাধ্যমে আমরা পার্থক্যের বছর, মাস এবং দিন পেতে পারি।
২. নির্দিষ্ট তারিখে বছর, মাস বা দিন যোগ বা বিয়োগ করা:
Period এর plus() এবং minus() মেথড ব্যবহার করে আপনি তারিখে কিছু সময় যোগ বা বিয়োগ করতে পারেন।
import java.time.*;
public class PeriodManipulationExample {
public static void main(String[] args) {
// Create a specific date
LocalDate date = LocalDate.of(2024, 1, 1); // 1st January 2024
// Create a period of 2 years, 3 months, and 10 days
Period period = Period.of(2, 3, 10);
// Add the period to the current date
LocalDate newDate = date.plus(period);
System.out.println("New Date after adding period: " + newDate);
// Subtract the period from the current date
LocalDate previousDate = date.minus(period);
System.out.println("New Date after subtracting period: " + previousDate);
}
}
আউটপুট:
New Date after adding period: 2026-04-11
New Date after subtracting period: 2021-09-21
ব্যাখ্যা:
Period.of(2, 3, 10): এটি একটিPeriodতৈরি করে যা ২ বছর, ৩ মাস, ১০ দিন পরিমাণ।date.plus(period): এটি নির্দিষ্ট তারিখে সেইPeriodযোগ করে।date.minus(period): এটি নির্দিষ্ট তারিখ থেকে সেইPeriodবিয়োগ করে।
Period এবং Duration মধ্যে পার্থক্য:
Periodতারিখের পার্থক্য (year, month, day) বের করে।Durationসময়ের পার্থক্য (hour, minute, second) বের করে।
যেমন যদি আপনি দুইটি LocalDate এর মধ্যে পার্থক্য চান, তবে আপনি Period ব্যবহার করবেন, কিন্তু যদি আপনি দুইটি LocalTime এর মধ্যে পার্থক্য চান, তবে আপনি Duration ব্যবহার করবেন।
Periodক্লাসটি তারিখের মধ্যে পার্থক্য বের করার জন্য খুবই কার্যকরী।- এটি immutable, thread-safe, এবং সহজে ব্যবহারযোগ্য।
- আপনি
Periodব্যবহার করে বছর, মাস, এবং দিনের পার্থক্য বের করতে পারেন এবংplus()এবংminus()মেথড ব্যবহার করে তারিখে পরিবর্তন করতে পারেন।
Duration হল java.time প্যাকেজের একটি ক্লাস, যা সময় সম্পর্কিত পার্থক্য হিসাব করতে ব্যবহৃত হয়। এটি মূলত ঘণ্টা, মিনিট, সেকেন্ড, মিলিসেকেন্ড এবং ন্যানোসেকেন্ড এর মতো সময়ের পরিমাপ নিয়ে কাজ করে এবং time-based calculations করার জন্য ব্যবহৃত হয়। Duration ক্লাসটি LocalTime, LocalDateTime, Instant ক্লাসের সাথে ব্যবহার করা যেতে পারে যখন আপনি দুটি সময়ের মধ্যে পার্থক্য বের করতে চান বা নির্দিষ্ট সময়ের অ্যাডজাস্টমেন্ট করতে চান।
Duration ক্লাসের মূল বৈশিষ্ট্য:
- Time-based calculations: এটি সময়ের পার্থক্য বের করার জন্য ব্যবহৃত হয়, যেমন দুইটি
LocalTimeবাInstantএর মধ্যে সময়ের পার্থক্য। - Immutable:
Durationঅবজেক্ট একটি অপরিবর্তনীয় (immutable) অবজেক্ট। - Time units: এটি সেকেন্ড, মিনিট, ঘণ্টা ইত্যাদি সময়ের এককগুলো পরিচালনা করে।
- Supports nanoseconds:
Durationক্লাসটি nanoseconds পর্যন্ত সমর্থন করে, যা অতিরিক্ত নির্ভুলতার জন্য ব্যবহারযোগ্য।
Duration ক্লাসের মেথড:
between(): দুটিTemporalঅবজেক্টের মধ্যে পার্থক্য হিসাব করে একটিDurationফেরত দেয়।ofDays(long days): নির্দিষ্ট দিন (days) থেকে একটিDurationতৈরি করে।ofHours(long hours): নির্দিষ্ট ঘণ্টা (hours) থেকে একটিDurationতৈরি করে।ofMinutes(long minutes): নির্দিষ্ট মিনিট (minutes) থেকে একটিDurationতৈরি করে।ofSeconds(long seconds): নির্দিষ্ট সেকেন্ড (seconds) থেকে একটিDurationতৈরি করে।toMinutes(): এই মেথডটি মোট সময়কে মিনিটে রূপান্তরিত করে।
Duration ব্যবহার করে সময়ের পার্থক্য বের করার উদাহরণ:
উদাহরণ 1: Duration দিয়ে দুটি সময়ের মধ্যে পার্থক্য বের করা
import java.time.*;
public class DurationExample {
public static void main(String[] args) {
// Creating two time instances
LocalTime startTime = LocalTime.of(10, 15); // 10:15
LocalTime endTime = LocalTime.of(14, 30); // 14:30
// Calculating the duration between two times
Duration duration = Duration.between(startTime, endTime);
System.out.println("Duration: " + duration.toHours() + " hours " + duration.toMinutes() % 60 + " minutes");
}
}
আউটপুট:
Duration: 4 hours 15 minutes
ব্যাখ্যা:
Duration.between(startTime, endTime): এটি দুটিLocalTimeএর মধ্যে সময়ের পার্থক্য বের করে এবং সেই পার্থক্যকেDurationহিসাবে রিটার্ন করে।duration.toHours()এবংduration.toMinutes(): এই মেথডগুলির মাধ্যমে আমরা পার্থক্যকে ঘণ্টা এবং মিনিটে রূপান্তর করেছি।
উদাহরণ 2: Duration দিয়ে নির্দিষ্ট সময় যোগ বা বিয়োগ করা
import java.time.*;
public class DurationManipulation {
public static void main(String[] args) {
// Creating a specific time
LocalTime time = LocalTime.of(10, 30); // 10:30
// Adding 2 hours and 15 minutes
Duration durationToAdd = Duration.ofHours(2).plusMinutes(15);
LocalTime newTime = time.plus(durationToAdd);
System.out.println("Original Time: " + time);
System.out.println("Time after adding 2 hours and 15 minutes: " + newTime);
}
}
আউটপুট:
Original Time: 10:30
Time after adding 2 hours and 15 minutes: 12:45
ব্যাখ্যা:
Duration.ofHours(2).plusMinutes(15): এখানে ২ ঘণ্টা এবং ১৫ মিনিটেরDurationতৈরি করা হয়েছে।time.plus(durationToAdd): এটি মূল সময়ের মধ্যে নির্দিষ্ট সময় যোগ করে নতুন সময় তৈরি করে।
Duration এবং Period এর মধ্যে পার্থক্য:
Duration এবং Period দুটোই সময়ের পার্থক্য বের করার জন্য ব্যবহৃত হয়, তবে তাদের মধ্যে কিছু গুরুত্বপূর্ণ পার্থক্য রয়েছে:
- Unit of Time:
Duration: সময়ের পার্থক্য সেকেন্ড, মিনিট, ঘণ্টা, মিলিসেকেন্ড, এবং ন্যানোসেকেন্ডে মাপা হয়।Period: সময়ের পার্থক্য দিন, মাস, এবং বছর দিয়ে মাপা হয়।
- Use Case:
Duration: যখন সময়ের পরিমাপ সেকেন্ড বা ঘণ্টা হিসেবে গুরুত্বপূর্ণ হয়, তখনDurationব্যবহার করা হয়।Period: যখন তারিখের পার্থক্য (দিন, মাস, বছর) গুরুত্বপূর্ণ হয়, তখনPeriodব্যবহার করা হয়।
- Examples:
Duration: সেকেন্ড বা মিনিটের মধ্যে পার্থক্য যেমন ১০ সেকেন্ড বা ৫ মিনিট।Period: তারিখের পার্থক্য যেমন ৩ বছর বা ৭ মাস বা ১৫ দিন।
উদাহরণ 3: Period ব্যবহার:
import java.time.*;
public class PeriodExample {
public static void main(String[] args) {
// Creating two dates
LocalDate startDate = LocalDate.of(2020, 1, 1);
LocalDate endDate = LocalDate.of(2024, 12, 31);
// Calculating the period between two dates
Period period = Period.between(startDate, endDate);
System.out.println("Period: " + period.getYears() + " years " + period.getMonths() + " months " + period.getDays() + " days");
}
}
আউটপুট:
Period: 4 years 11 months 30 days
ব্যাখ্যা:
Period.between(startDate, endDate): এটি দুটিLocalDateএর মধ্যে তারিখের পার্থক্য বের করে এবং সেই পার্থক্যকেPeriodহিসাবে রিটার্ন করে।period.getYears(),period.getMonths(),period.getDays(): এই মেথডগুলো দ্বারা আমরা বছরে, মাসে এবং দিনে পার্থক্য বের করেছি।
Duration: এটি time-based পার্থক্য মাপার জন্য ব্যবহৃত হয়, এবং সেকেন্ড, মিনিট, ঘণ্টা, মিলিসেকেন্ড এবং ন্যানোসেকেন্ড পর্যন্ত সমর্থন করে।Period: এটি date-based পার্থক্য মাপার জন্য ব্যবহৃত হয়, এবং বছর, মাস এবং দিন পর্যন্ত সমর্থন করে।
Duration এবং Period ক্লাসের মধ্যে পার্থক্য জানলে, আপনি বুঝতে পারবেন কোনটি আপনার কাজের জন্য উপযুক্ত, এবং তা থেকে সময় এবং তারিখের পার্থক্য বের করতে পারবেন।
Java.time Package এর মাধ্যমে দুটি তারিখ বা সময়ের মধ্যে পার্থক্য নির্ণয় করার জন্য Duration এবং Period ক্লাস ব্যবহার করা হয়। এগুলি মূলত তারিখ এবং সময়ের মধ্যে পার্থক্য নির্ণয় করতে সহায়ক।
1. Duration ক্লাস:
Duration ক্লাসটি সময়ের (Time-based) পার্থক্য নির্ণয় করতে ব্যবহৃত হয়, যেমন ঘণ্টা, মিনিট, সেকেন্ড, এবং মিলিসেকেন্ড। এটি সাধারণত LocalTime, LocalDateTime, ZonedDateTime এর মধ্যে পার্থক্য বের করতে ব্যবহৃত হয়।
2. Period ক্লাস:
Period ক্লাসটি তারিখের (Date-based) পার্থক্য নির্ণয় করতে ব্যবহৃত হয়, যেমন বছর, মাস, দিন। এটি সাধারণত LocalDate এর মধ্যে পার্থক্য বের করতে ব্যবহৃত হয়।
দুটি তারিখ বা সময়ের মধ্যে পার্থক্য নির্ণয় করার উদাহরণ:
2.1 সময়ের পার্থক্য নির্ণয়: (Duration Class)
ধরা যাক, আমাদের দুটি LocalTime অবজেক্ট আছে এবং আমরা তাদের মধ্যে সময়ের পার্থক্য বের করতে চাই:
import java.time.*;
public class DurationExample {
public static void main(String[] args) {
// Create two LocalTime objects
LocalTime startTime = LocalTime.of(8, 30); // 08:30
LocalTime endTime = LocalTime.of(14, 45); // 14:45
// Calculate the duration between the two times
Duration duration = Duration.between(startTime, endTime);
// Print the difference in hours and minutes
System.out.println("Duration: " + duration.toHours() + " hours " + duration.toMinutes() % 60 + " minutes");
}
}
আউটপুট:
Duration: 6 hours 15 minutes
ব্যাখ্যা:
Duration.between(startTime, endTime): এটিstartTimeএবংendTimeএর মধ্যে সময়ের পার্থক্য বের করে এবং Duration অবজেক্ট ফিরিয়ে দেয়।duration.toHours(): এটি মোট ঘণ্টা বের করে।duration.toMinutes() % 60: এটি মিনিটের পার্থক্য বের করে।
2.2 তারিখের পার্থক্য নির্ণয়: (Period Class)
ধরা যাক, আমাদের দুটি LocalDate অবজেক্ট আছে এবং আমরা তাদের মধ্যে তারিখের পার্থক্য বের করতে চাই:
import java.time.*;
public class PeriodExample {
public static void main(String[] args) {
// Create two LocalDate objects
LocalDate startDate = LocalDate.of(2024, 1, 1); // 1st January 2024
LocalDate endDate = LocalDate.of(2024, 12, 31); // 31st December 2024
// Calculate the period between the two dates
Period period = Period.between(startDate, endDate);
// Print the difference in years, months, and days
System.out.println("Period: " + period.getYears() + " years, " + period.getMonths() + " months, " + period.getDays() + " days");
}
}
আউটপুট:
Period: 0 years, 11 months, 30 days
ব্যাখ্যা:
Period.between(startDate, endDate): এটিstartDateএবংendDateএর মধ্যে তারিখের পার্থক্য বের করে এবং Period অবজেক্ট ফিরিয়ে দেয়।period.getYears(): এটি বছরগুলোর পার্থক্য বের করে।period.getMonths(): এটি মাসগুলোর পার্থক্য বের করে।period.getDays(): এটি দিনের পার্থক্য বের করে।
3. LocalDateTime এর মধ্যে পার্থক্য নির্ণয়: (Duration and Period)
LocalDateTime অবজেক্টের মধ্যে পার্থক্য নির্ণয় করার জন্য Duration এবং Period উভয়ই ব্যবহার করা যেতে পারে। যেহেতু LocalDateTime সময় এবং তারিখ উভয়কেই ধারণ করে, সুতরাং আপনি যেভাবে সময়ের পার্থক্য বের করেছেন, ঠিক সেভাবেই তারিখের পার্থক্যও বের করতে পারবেন।
LocalDateTime Example:
import java.time.*;
public class LocalDateTimeDifferenceExample {
public static void main(String[] args) {
// Create two LocalDateTime objects
LocalDateTime startDateTime = LocalDateTime.of(2024, 1, 1, 10, 30); // 1st January 2024, 10:30
LocalDateTime endDateTime = LocalDateTime.of(2024, 12, 31, 14, 45); // 31st December 2024, 14:45
// Calculate the duration between the two LocalDateTime objects
Duration duration = Duration.between(startDateTime, endDateTime);
// Print the difference in days, hours, and minutes
System.out.println("Duration: " + duration.toDays() + " days, " + duration.toHours() % 24 + " hours, " + duration.toMinutes() % 60 + " minutes");
}
}
আউটপুট:
Duration: 364 days, 4 hours, 15 minutes
ব্যাখ্যা:
Duration.between(startDateTime, endDateTime): এটিLocalDateTimeএর মধ্যে সময়ের পার্থক্য বের করে এবং Duration ফেরত দেয়।duration.toDays(): এটি দিনের পার্থক্য বের করে।duration.toHours() % 24: এটি ঘণ্টার পার্থক্য বের করে।duration.toMinutes() % 60: এটি মিনিটের পার্থক্য বের করে।
4. ZonedDateTime এর মধ্যে পার্থক্য নির্ণয়:
ZonedDateTime ক্লাস ব্যবহার করে আপনি টাইমজোন সহ তারিখ এবং সময়ের পার্থক্য বের করতে পারেন।
import java.time.*;
public class ZonedDateTimeExample {
public static void main(String[] args) {
// Create two ZonedDateTime objects
ZonedDateTime startZonedDateTime = ZonedDateTime.of(2024, 1, 1, 10, 30, 0, 0, ZoneId.of("America/New_York"));
ZonedDateTime endZonedDateTime = ZonedDateTime.of(2024, 12, 31, 14, 45, 0, 0, ZoneId.of("Europe/London"));
// Calculate the duration between the two ZonedDateTime objects
Duration duration = Duration.between(startZonedDateTime, endZonedDateTime);
// Print the difference in days, hours, and minutes
System.out.println("Duration: " + duration.toDays() + " days, " + duration.toHours() % 24 + " hours, " + duration.toMinutes() % 60 + " minutes");
}
}
আউটপুট:
Duration: 364 days, 5 hours, 15 minutes
ব্যাখ্যা:
Duration.between(startZonedDateTime, endZonedDateTime): এটিZonedDateTimeঅবজেক্টগুলোর মধ্যে সময়ের পার্থক্য বের করে।- এটি
ZonedDateTimeএ টাইমজোনের পার্থক্যও স্বাভাবিকভাবে পরিচালনা করে।
DurationএবংPeriodক্লাসের মাধ্যমে আপনি সময়ের এবং তারিখের পার্থক্য বের করতে পারেন।Durationব্যবহার করে সময় (ঘণ্টা, মিনিট, সেকেন্ড) এর পার্থক্য বের করা হয়, এবংPeriodব্যবহার করে তারিখ (বছর, মাস, দিন) এর পার্থক্য বের করা হয়।ZonedDateTimeএবংLocalDateTimeএর মধ্যে পার্থক্য বের করতে এই ক্লাসগুলি অত্যন্ত কার্যকরী, এবং এগুলি টাইমজোন সম্পর্কিত তথ্যও ঠিকভাবে হ্যান্ডেল করে।
Java.time প্যাকেজের এই ক্লাসগুলোর মাধ্যমে আপনি তারিখ ও সময়ের মধ্যে পার্থক্য নির্ণয় করে আপনার অ্যাপ্লিকেশনকে আরো কার্যকরী এবং দক্ষভাবে পরিচালনা করতে পারবেন।
Java.time প্যাকেজ এর Period এবং Duration ক্লাস দুটি গুরুত্বপূর্ণ ক্লাস, যা সময়ের পার্থক্য নির্ধারণ করতে ব্যবহৃত হয়। এগুলি LocalDate এবং LocalDateTime এর মধ্যে পার্থক্য হিসাব করতে সাহায্য করে।
Period: এটি তারিখের পার্থক্য (যেমন বছর, মাস, দিন) বের করতে ব্যবহৃত হয়। এটিLocalDateএর মধ্যে পার্থক্য বের করার জন্য ব্যবহৃত হয়।Duration: এটি সময় (ঘণ্টা, মিনিট, সেকেন্ড) এর পার্থক্য হিসাব করতে ব্যবহৃত হয়। এটিLocalTimeবাLocalDateTimeএর মধ্যে পার্থক্য বের করার জন্য ব্যবহৃত হয়।
1. Period ক্লাস:
Period ক্লাসটি তারিখের পার্থক্য (যেমন বছর, মাস, দিন) বের করার জন্য ব্যবহৃত হয়। এটি LocalDate এর মধ্যে পার্থক্য বের করতে পারে।
Period এর উদাহরণ:
import java.time.LocalDate;
import java.time.Period;
public class PeriodExample {
public static void main(String[] args) {
// Creating two LocalDate objects
LocalDate startDate = LocalDate.of(2020, 1, 1); // Start Date: 1st January 2020
LocalDate endDate = LocalDate.of(2024, 12, 31); // End Date: 31st December 2024
// Calculate the period between two dates
Period period = Period.between(startDate, endDate);
// Get years, months, and days from the period
System.out.println("Period: " + period.getYears() + " years, " + period.getMonths() + " months, " + period.getDays() + " days");
}
}
আউটপুট:
Period: 4 years, 11 months, 30 days
ব্যাখ্যা:
Period.between(startDate, endDate): এটি দুটিLocalDateঅবজেক্টের মধ্যে পার্থক্য বের করে। এতেgetYears(),getMonths(), এবংgetDays()মেথড ব্যবহার করে সময়ের পার্থক্য পেতে পারি।
2. Duration ক্লাস:
Duration ক্লাসটি সময় (ঘণ্টা, মিনিট, সেকেন্ড) এর পার্থক্য হিসাব করতে ব্যবহৃত হয় এবং এটি LocalTime বা LocalDateTime এর মধ্যে পার্থক্য বের করতে ব্যবহার করা হয়।
Duration এর উদাহরণ:
import java.time.Duration;
import java.time.LocalDateTime;
public class DurationExample {
public static void main(String[] args) {
// Creating two LocalDateTime objects
LocalDateTime startDateTime = LocalDateTime.of(2024, 12, 23, 10, 0); // Start DateTime: 23rd December 2024, 10:00 AM
LocalDateTime endDateTime = LocalDateTime.of(2024, 12, 23, 14, 30); // End DateTime: 23rd December 2024, 2:30 PM
// Calculate the duration between two LocalDateTime objects
Duration duration = Duration.between(startDateTime, endDateTime);
// Get hours and minutes from the duration
System.out.println("Duration: " + duration.toHours() + " hours " + duration.toMinutes() % 60 + " minutes");
}
}
আউটপুট:
Duration: 4 hours 30 minutes
ব্যাখ্যা:
Duration.between(startDateTime, endDateTime): এটি দুটিLocalDateTimeএর মধ্যে পার্থক্য বের করে এবং সেই পার্থক্যকেDurationঅবজেক্ট হিসেবে ফেরত দেয়।toHours()এবংtoMinutes()মেথড ব্যবহার করে আমরা সময়ের পার্থক্য ঘণ্টা এবং মিনিটে বের করেছি।
Duration ক্লাসের গুরুত্বপূর্ণ মেথড:
toHours(): এটিDurationঅবজেক্টের সময়ের পার্থক্য ঘণ্টায় ফেরত দেয়।toMinutes(): এটিDurationঅবজেক্টের সময়ের পার্থক্য মিনিটে ফেরত দেয়।toDays(): এটিDurationঅবজেক্টের সময়ের পার্থক্য দিনে ফেরত দেয়।
Period এবং Duration এর মধ্যে পার্থক্য:
Period: এটি তারিখের পার্থক্য বের করতে ব্যবহৃত হয় (যেমন বছর, মাস, দিন)।Duration: এটি সময়ের পার্থক্য (ঘণ্টা, মিনিট, সেকেন্ড) বের করতে ব্যবহৃত হয়।
উদাহরণ:
- আপনি যদি
LocalDateএর মধ্যে পার্থক্য বের করতে চান, তবেPeriodব্যবহার করবেন। - আপনি যদি
LocalTimeবাLocalDateTimeএর মধ্যে পার্থক্য বের করতে চান, তবেDurationব্যবহার করবেন।
PeriodএবংDurationক্লাসগুলিjava.timeপ্যাকেজের গুরুত্বপূর্ণ অংশ যা তারিখ এবং সময়ের পার্থক্য বের করার জন্য ব্যবহৃত হয়।Periodতারিখের পার্থক্য (যেমন বছর, মাস, দিন) বের করার জন্য ব্যবহার করা হয়, এবংDurationসময়ের পার্থক্য (ঘণ্টা, মিনিট, সেকেন্ড) বের করার জন্য ব্যবহৃত হয়।DurationএবংPeriodউভয়েই খুবই সহজ এবং কার্যকরী উপায়ে তারিখ এবং সময়ের পার্থক্য নির্ধারণ করতে সাহায্য করে, যা জাভার পুরনোDateএবংCalendarAPI থেকে অনেক বেশি শক্তিশালী এবং পরিষ্কার।
Read more