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 ক্লাসের মধ্যে পার্থক্য জানলে, আপনি বুঝতে পারবেন কোনটি আপনার কাজের জন্য উপযুক্ত, এবং তা থেকে সময় এবং তারিখের পার্থক্য বের করতে পারবেন।
Read more