LocalTime হল Java 8 এর java.time প্যাকেজের একটি গুরুত্বপূর্ণ ক্লাস যা সময় সম্পর্কিত কাজ করার জন্য ব্যবহৃত হয়। এটি একটি immutable (অপরিবর্তনীয়) ক্লাস এবং time-only মান পরিচালনা করে, অর্থাৎ, এটি time (ঘণ্টা, মিনিট, সেকেন্ড, এবং ন্যানোসেকেন্ড) সম্পর্কিত কোনো তথ্য রাখে কিন্তু তারিখ বা timezone সম্পর্কিত কোনো তথ্য রাখে না।
LocalTime ব্যবহার করে আপনি সময় তৈরি, কম্পেয়ার, এবং বিভিন্ন সময় সম্পর্কিত অপারেশন করতে পারেন যেমন সময় যোগ বা বাদ দেয়া, সময়ের তুলনা ইত্যাদি।
LocalTime Class এর বৈশিষ্ট্য
- Immutable: একবার
LocalTimeতৈরি হওয়ার পর সেটির মান পরিবর্তন করা যায় না। - No Time Zone: এটি কোনো টাইমজোন সম্পর্কিত তথ্য ধারণ করে না।
- Time Representation: এটি শুধু সময় প্রতিনিধিত্ব করে (ঘণ্টা, মিনিট, সেকেন্ড, ন্যানোসেকেন্ড)।
LocalTime Class ব্যবহার করার জন্য গুরুত্বপূর্ণ মেথডগুলো:
now(): এটি বর্তমান সময়েরLocalTimeঅবজেক্ট তৈরি করে।of(int hour, int minute): এটি একটি নির্দিষ্ট ঘণ্টা এবং মিনিটের ভিত্তিতেLocalTimeতৈরি করে।plusHours(long hours): এটি সময়ের সাথে ঘণ্টা যোগ করে নতুনLocalTimeতৈরি করে।minusMinutes(long minutes): এটি সময় থেকে মিনিট বাদ দেয়।isBefore(LocalTime other): এটি পরীক্ষা করে যে বর্তমানLocalTimeঅন্য সময়ের আগে কিনা।isAfter(LocalTime other): এটি পরীক্ষা করে যে বর্তমানLocalTimeঅন্য সময়ের পরে কিনা।getHour(),getMinute(),getSecond(): সময়ের ঘণ্টা, মিনিট বা সেকেন্ড আলাদাভাবে পেতে ব্যবহৃত হয়।toString(): এটিLocalTimeকে স্ট্রিং হিসেবে রিটার্ন করে।
LocalTime Class এর কিছু সাধারণ উদাহরণ
1. LocalTime তৈরি এবং ব্যবহার
import java.time.LocalTime;
public class LocalTimeExample {
public static void main(String[] args) {
// Current time
LocalTime timeNow = LocalTime.now();
System.out.println("Current time: " + timeNow);
// Specifying a time using hour and minute
LocalTime specificTime = LocalTime.of(14, 30); // 14:30
System.out.println("Specific time: " + specificTime);
}
}
আউটপুট:
Current time: 14:45:22.763224
Specific time: 14:30
কোড বিশ্লেষণ:
LocalTime.now(): এটি বর্তমান সময়কেLocalTimeঅবজেক্টে পরিণত করে।LocalTime.of(14, 30): এটি ১৪ ঘণ্টা ৩০ মিনিটের একটিLocalTimeঅবজেক্ট তৈরি করে।
2. Adding and Subtracting Time (plusXXX, minusXXX)
import java.time.LocalTime;
public class TimeManipulationExample {
public static void main(String[] args) {
LocalTime time = LocalTime.of(10, 15);
// Add 2 hours and 30 minutes
LocalTime newTime = time.plusHours(2).plusMinutes(30);
System.out.println("Time after adding 2 hours and 30 minutes: " + newTime);
// Subtract 1 hour
LocalTime subtractedTime = time.minusHours(1);
System.out.println("Time after subtracting 1 hour: " + subtractedTime);
}
}
আউটপুট:
Time after adding 2 hours and 30 minutes: 12:45
Time after subtracting 1 hour: 09:15
কোড বিশ্লেষণ:
plusHours()এবংplusMinutes()ব্যবহার করে সময়ের সাথে ঘণ্টা ও মিনিট যোগ করা হয়েছে।minusHours()ব্যবহার করে সময় থেকে ঘণ্টা কমানো হয়েছে।
3. Comparing LocalTime (isBefore, isAfter)
import java.time.LocalTime;
public class TimeComparisonExample {
public static void main(String[] args) {
LocalTime time1 = LocalTime.of(10, 15);
LocalTime time2 = LocalTime.of(14, 30);
// Compare times
System.out.println("Is time1 before time2? " + time1.isBefore(time2)); // true
System.out.println("Is time1 after time2? " + time1.isAfter(time2)); // false
}
}
আউটপুট:
Is time1 before time2? true
Is time1 after time2? false
কোড বিশ্লেষণ:
isBefore()এবংisAfter()মেথড ব্যবহার করে দুটিLocalTimeঅবজেক্টের মধ্যে তুলনা করা হয়েছে।- এখানে,
10:15সময়টি14:30এর আগে রয়েছে, তাইisBefore()মেথডtrueরিটার্ন করেছে।
4. Extracting Hour, Minute, and Second
import java.time.LocalTime;
public class TimeComponentsExample {
public static void main(String[] args) {
LocalTime time = LocalTime.of(10, 30, 45);
// Extracting hour, minute, and second
System.out.println("Hour: " + time.getHour()); // 10
System.out.println("Minute: " + time.getMinute()); // 30
System.out.println("Second: " + time.getSecond()); // 45
}
}
আউটপুট:
Hour: 10
Minute: 30
Second: 45
কোড বিশ্লেষণ:
getHour(),getMinute(), এবংgetSecond()মেথডগুলি ব্যবহার করেLocalTimeঅবজেক্টের ঘণ্টা, মিনিট এবং সেকেন্ড আলাদাভাবে বের করা হয়েছে।
5. toString() Method:
import java.time.LocalTime;
public class TimeToStringExample {
public static void main(String[] args) {
LocalTime time = LocalTime.of(9, 15, 30);
System.out.println("Formatted time: " + time.toString()); // 09:15:30
}
}
আউটপুট:
Formatted time: 09:15:30
কোড বিশ্লেষণ:
toString()মেথডটিLocalTimeঅবজেক্টকে স্ট্যান্ডার্ড ফরম্যাটে (HH:mm:ss) স্ট্রিং হিসেবে রিটার্ন করে।LocalTimeক্লাসটি time-only মান (যেমন, ঘণ্টা, মিনিট, সেকেন্ড) পরিচালনার জন্য একটি আদর্শ ক্লাস।- এটি immutable এবং টাইম জোন বা তারিখ সম্পর্কিত কোনো তথ্য ধারণ করে না, কেবলমাত্র সময় সম্পর্কিত কাজগুলোর জন্য ব্যবহৃত হয়।
plusXXX,minusXXX,isBefore,isAfterএর মতো মেথডগুলি সময়ের সাথে কাজ করার জন্য সহায়তা করে এবং সময়ের তুলনা করতে ব্যবহৃত হয়।toString(),getHour(),getMinute(), এবংgetSecond()এর মাধ্যমে আপনি সময়ের বিভিন্ন অংশের সাথে কাজ করতে পারবেন।
Java-তে LocalTime ব্যবহারের মাধ্যমে আপনি সহজেই সময় সম্পর্কিত অপারেশন করতে পারেন এবং সময়ের সাথে জড়িত অ্যাপ্লিকেশনগুলোতে কার্যকারিতা এবং নমনীয়তা বৃদ্ধি করতে পারেন।
LocalTime একটি ক্লাস যা java.time প্যাকেজে অন্তর্ভুক্ত এবং এটি সময় সম্পর্কিত তথ্য ধারণ করে, যেমন ঘণ্টা, মিনিট, সেকেন্ড, এবং ন্যানো সেকেন্ড। এটি Java 8 এ যোগ করা হয়েছিল এবং LocalDate এর মতো, এটি কোনো তারিখ সম্পর্কিত তথ্য ধারণ করে না, শুধুমাত্র সময় সম্পর্কিত ডেটা রাখে। LocalTime ব্যবহার করে আপনি সময়ের নির্দিষ্ট মান (যেমন ঘণ্টা, মিনিট, সেকেন্ড) সেট এবং প্রাপ্ত করতে পারেন, এবং এটি ISO-8601 টাইম স্ট্যান্ডার্ড অনুসরণ করে।
LocalTime কি?
LocalTime ক্লাসটি ISO-8601 স্ট্যান্ডার্ড অনুসারে শুধুমাত্র সময় (যেমন 12:30:45) সম্পর্কিত ডেটা ধারণ করে এবং এর মধ্যে তারিখ বা টাইমজোন সংক্রান্ত কোনো তথ্য থাকে না। এটি সাধারণত সময়ের সাথে কাজ করার জন্য ব্যবহৃত হয়, যেমন ঘড়ির সময় দেখানো, নির্দিষ্ট সময়ের সঙ্গে তুলনা করা, অথবা সময়ের গণনা করা (যেমন, নির্দিষ্ট ঘণ্টা, মিনিট, সেকেন্ড যোগ/বিয়োগ করা)।
LocalTime এর সুবিধাসমূহ:
- Immutable:
LocalTimeঅপরিবর্তনীয় (immutable), অর্থাৎ একবার একটি অবজেক্ট তৈরি হলে, আপনি তার মান পরিবর্তন করতে পারবেন না। - Thread-Safe: যেহেতু
LocalTimeঅপরিবর্তনীয়, এটি মাল্টি-থ্রেডেড পরিবেশে নিরাপদ। - ISO-8601 Compliant:
LocalTimeক্লাসটি ISO-8601 স্ট্যান্ডার্ড অনুসরণ করে, যা আন্তর্জাতিকভাবে সময়ের ফরম্যাট হিসেবে ব্যবহৃত হয়।
LocalTime কিভাবে কাজ করে?
LocalTime ক্লাসের সাহায্যে আপনি সময় সম্পর্কিত বিভিন্ন অপারেশন করতে পারেন, যেমন:
- সময় তৈরি করা
- সময়ের তুলনা করা
- ঘণ্টা, মিনিট, সেকেন্ড গণনা করা
- সময়ের মধ্যে যোগ/বিয়োগ করা
LocalTime ব্যবহার করার উদাহরণ:
1. LocalTime অবজেক্ট তৈরি করা:
import java.time.LocalTime;
public class LocalTimeExample {
public static void main(String[] args) {
// 12:30:45 এ সময় তৈরি করা
LocalTime time = LocalTime.of(12, 30, 45);
System.out.println("Created Time: " + time);
// বর্তমান সময় পেতে
LocalTime currentTime = LocalTime.now();
System.out.println("Current Time: " + currentTime);
}
}
আউটপুট:
Created Time: 12:30:45
Current Time: 14:15:30.123456789
ব্যাখ্যা:
LocalTime.of(12, 30, 45): এটি12:30:45সময় তৈরি করে।LocalTime.now(): এটি বর্তমান সিস্টেম সময় ফেরত দেয়।
2. ঘন্টা, মিনিট, সেকেন্ড এক্সেস করা:
import java.time.LocalTime;
public class LocalTimeExample {
public static void main(String[] args) {
LocalTime time = LocalTime.of(14, 45, 30);
// ঘন্টা, মিনিট এবং সেকেন্ড এক্সেস করা
int hour = time.getHour();
int minute = time.getMinute();
int second = time.getSecond();
System.out.println("Hour: " + hour);
System.out.println("Minute: " + minute);
System.out.println("Second: " + second);
}
}
আউটপুট:
Hour: 14
Minute: 45
Second: 30
ব্যাখ্যা:
getHour(): সময়ের ঘন্টা অংশ প্রদান করে।getMinute(): সময়ের মিনিট অংশ প্রদান করে।getSecond(): সময়ের সেকেন্ড অংশ প্রদান করে।
3. সময়ের মধ্যে যোগ/বিয়োগ করা:
LocalTime ক্লাসে plus() এবং minus() মেথড ব্যবহার করে আপনি সময়ের সাথে যোগ বা বিয়োগ করতে পারেন।
import java.time.LocalTime;
public class LocalTimeExample {
public static void main(String[] args) {
LocalTime time = LocalTime.of(10, 15, 30);
// 2 ঘণ্টা, 30 মিনিট যোগ করা
LocalTime newTime = time.plusHours(2).plusMinutes(30);
System.out.println("New Time: " + newTime);
// 1 ঘণ্টা, 15 মিনিট বিয়োগ করা
LocalTime newTimeMinus = time.minusHours(1).minusMinutes(15);
System.out.println("New Time After Subtraction: " + newTimeMinus);
}
}
আউটপুট:
New Time: 12:45:30
New Time After Subtraction: 08:00:30
ব্যাখ্যা:
plusHours(2).plusMinutes(30): ২ ঘণ্টা এবং ৩০ মিনিট যোগ করা হচ্ছে।minusHours(1).minusMinutes(15): ১ ঘণ্টা এবং ১৫ মিনিট বিয়োগ করা হচ্ছে।
4. সময় তুলনা করা:
LocalTime ক্লাসে isBefore(), isAfter(), এবং equals() মেথডের মাধ্যমে আপনি দুইটি সময়ের মধ্যে তুলনা করতে পারেন।
import java.time.LocalTime;
public class LocalTimeExample {
public static void main(String[] args) {
LocalTime time1 = LocalTime.of(10, 30);
LocalTime time2 = LocalTime.of(12, 45);
// Check if time1 is before time2
if (time1.isBefore(time2)) {
System.out.println(time1 + " is before " + time2);
}
// Check if time2 is after time1
if (time2.isAfter(time1)) {
System.out.println(time2 + " is after " + time1);
}
// Check if time1 is equal to time2
if (time1.equals(time2)) {
System.out.println(time1 + " is equal to " + time2);
} else {
System.out.println(time1 + " is not equal to " + time2);
}
}
}
আউটপুট:
10:30 is before 12:45
12:45 is after 10:30
10:30 is not equal to 12:45
ব্যাখ্যা:
isBefore(time2):time1যদিtime2এর আগে থাকে তবে এটিtrueফেরত দেবে।isAfter(time1):time2যদিtime1এর পরে থাকে তবে এটিtrueফেরত দেবে।equals(time2): দুটি সময় যদি সমান হয়, তবে এটিtrueফেরত দেবে।
5. LocalTime এবং Duration ব্যবহার:
Duration ক্লাস ব্যবহার করে দুটি LocalTime এর মধ্যে সময়ের পার্থক্য বের করতে পারেন।
import java.time.LocalTime;
import java.time.Duration;
public class LocalTimeExample {
public static void main(String[] args) {
LocalTime startTime = LocalTime.of(9, 0);
LocalTime endTime = LocalTime.of(17, 30);
// Calculate the duration between two times
Duration duration = Duration.between(startTime, endTime);
System.out.println("Duration between times: " + duration.toHours() + " hours and " + duration.toMinutes() % 60 + " minutes");
}
}
আউটপুট:
Duration between times: 8 hours and 30 minutes
ব্যাখ্যা:
Duration.between(startTime, endTime): এটিstartTimeএবংendTimeএর মধ্যে সময়ের পার্থক্য বের করে।
LocalTime ক্লাসটি Java 8-এ আনা হয়েছে এবং এটি সময়ের সাথে কাজ করার জন্য একটি অত্যন্ত কার্যকরী এবং ব্যবহারযোগ্য ক্লাস। এটি ঘণ্টা, মিনিট, সেকেন্ড এবং ন্যানো সেকেন্ড সম্পর্কিত তথ্য পরিচালনা করতে সাহায্য করে এবং কোনো তারিখ বা টাইমজোন সম্পর্কিত তথ্য রাখে না। আপনি এটি ব্যবহার করে সময় তৈরি, সময়ের যোগ/বিয়োগ, সময়ের তুলনা, এবং সময়ের মধ্যে পার্থক্য বের করতে পারেন। LocalTime একটি immutable ক্লাস, যা thread-safe এবং অত্যন্ত নির্ভরযোগ্য।
java.time.LocalTime ক্লাসটি Java 8 থেকে পরিচিত, এবং এটি java.time প্যাকেজের অংশ যা নির্দিষ্ট সময়ে কাজ করার জন্য ব্যবহৃত হয়। এটি ঘণ্টা, মিনিট, সেকেন্ড এবং ন্যানোসেকেন্ড ধারণ করে এবং এটি কোনো নির্দিষ্ট সময় অঞ্চলের সাথে সম্পর্কিত নয়। LocalTime ক্লাসটি সাধারণত এটি ব্যবহৃত সময় বা বিভিন্ন সময় সম্পর্কিত গণনা করার জন্য ব্যবহার করা হয়।
LocalTime দিয়ে বর্তমান সময় পাওয়া:
আপনি LocalTime.now() মেথড ব্যবহার করে বর্তমান সময় সহজেই পেতে পারেন।
উদাহরণ: LocalTime দিয়ে বর্তমান সময় পাওয়া
import java.time.LocalTime;
public class CurrentTimeExample {
public static void main(String[] args) {
// Get the current time
LocalTime currentTime = LocalTime.now();
// Print the current time
System.out.println("Current Time: " + currentTime);
}
}
ব্যাখ্যা:
LocalTime.now(): এটি বর্তমান সময় প্রদান করে, যা সিস্টেমের লোকাল সময় অঞ্চল অনুযায়ী হবে।- Output: এটি ঘণ্টা:মিনিট:সেকেন্ড.ন্যানোসেকেন্ড ফরম্যাটে বর্তমান সময়ের মান দেখাবে।
আউটপুট উদাহরণ:
Current Time: 14:35:20.345689
এখানে:
14হলো ঘণ্টা,35হলো মিনিট,20হলো সেকেন্ড,345689হলো ন্যানোসেকেন্ড।
অতিরিক্ত কাজ:
Specific Time Creation: আপনি
LocalTime.of(int hour, int minute)মেথড ব্যবহার করে একটি নির্দিষ্ট সময়ও তৈরি করতে পারেন।LocalTime specificTime = LocalTime.of(15, 30); // 3:30 PM System.out.println("Specific Time: " + specificTime);আউটপুট:
Specific Time: 15:30Adding/Subtracting Time:
LocalTimeক্লাসে সময়ের যোগ বা বিয়োগ করার জন্য বিভিন্ন মেথড রয়েছে, যেমনplusHours(),minusMinutes()ইত্যাদি।উদাহরণ:
LocalTime timePlusTwoHours = currentTime.plusHours(2); System.out.println("Time after adding 2 hours: " + timePlusTwoHours);আউটপুট:
Time after adding 2 hours: 16:35:20.345689
LocalTime.now() মেথড ব্যবহার করে আপনি সহজেই বর্তমান সময় পেতে পারেন। এটি Java 8 এবং পরবর্তীতে সময় সম্পর্কিত কাজ করার জন্য অত্যন্ত কার্যকরী এবং নির্ভুল পদ্ধতি। LocalTime ক্লাস ব্যবহার করে আপনি সময়ের যোগ-বিয়োগও করতে পারবেন এবং এটি অন্যান্য java.time ক্লাসের মতো একই ধরনের কার্যকারিতা প্রদান করে।
Java.time প্যাকেজ Java 8-এ পরিচিতি লাভ করেছে এবং এটি Date and Time API এর মাধ্যমে সময় এবং তারিখের সঙ্গে কাজ করার একটি উন্নত পদ্ধতি সরবরাহ করে। এই প্যাকেজটি LocalDateTime, LocalDate, LocalTime, ZonedDateTime, Duration, এবং Period এর মত ক্লাস দিয়ে নির্দিষ্ট সময় সেট করা এবং তার সঙ্গে কাজ করার জন্য বেশ কার্যকরী টুল সরবরাহ করে।
এখানে আমরা আলোচনা করব কিভাবে নির্দিষ্ট সময় সেট করা যায় এবং তার সাথে কাজ করা যায় Java.time প্যাকেজ ব্যবহার করে।
1. নির্দিষ্ট সময় সেট করা (Setting Specific Time)
Java 8 এর java.time প্যাকেজে LocalTime, LocalDate, এবং LocalDateTime ক্লাস ব্যবহার করে নির্দিষ্ট সময় এবং তারিখ সেট করা যায়। এখানে কিভাবে নির্দিষ্ট সময় সেট করা যায় এবং তার সাথে কাজ করা যায়, তা দেখানো হচ্ছে।
1.1 LocalTime ক্লাসের মাধ্যমে সময় সেট করা:
LocalTime ক্লাস শুধুমাত্র সময়ের প্রতিনিধিত্ব করে (যেমন ঘণ্টা, মিনিট, সেকেন্ড) এবং এর সাথে কোনো তারিখ বা টাইমজোন সম্পর্কিত তথ্য থাকে না।
import java.time.LocalTime;
public class SetSpecificTime {
public static void main(String[] args) {
// Creating a specific time
LocalTime time = LocalTime.of(14, 30); // 14:30 (2:30 PM)
System.out.println("Specific Time: " + time);
// Setting time with hours, minutes, seconds and nanoseconds
LocalTime detailedTime = LocalTime.of(14, 30, 15, 500000000); // 14:30:15.500
System.out.println("Detailed Time: " + detailedTime);
// Getting the current time
LocalTime currentTime = LocalTime.now();
System.out.println("Current Time: " + currentTime);
}
}
আউটপুট:
Specific Time: 14:30
Detailed Time: 14:30:15.500
Current Time: 14:45:30.123456
ব্যাখ্যা:
LocalTime.of(14, 30): এটি একটি নির্দিষ্ট সময় তৈরি করে (14:30)।LocalTime.now(): এটি বর্তমান সময় ফেরত দেয়।
1.2 LocalDate ক্লাসের মাধ্যমে নির্দিষ্ট তারিখ সেট করা:
LocalDate ক্লাসটি শুধুমাত্র তারিখ (দিন, মাস, বছর) ধারণ করে, কোনো সময় বা টাইমজোন সম্পর্কিত তথ্য থাকে না।
import java.time.LocalDate;
public class SetSpecificDate {
public static void main(String[] args) {
// Creating a specific date
LocalDate date = LocalDate.of(2024, 12, 23); // 23rd December, 2024
System.out.println("Specific Date: " + date);
// Getting the current date
LocalDate currentDate = LocalDate.now();
System.out.println("Current Date: " + currentDate);
}
}
আউটপুট:
Specific Date: 2024-12-23
Current Date: 2024-12-23
ব্যাখ্যা:
LocalDate.of(2024, 12, 23): এটি একটি নির্দিষ্ট তারিখ তৈরি করে (২৩ ডিসেম্বর ২০২৪)।LocalDate.now(): এটি বর্তমান তারিখ ফেরত দেয়।
1.3 LocalDateTime ক্লাসের মাধ্যমে নির্দিষ্ট তারিখ এবং সময় সেট করা:
LocalDateTime ক্লাসটি তারিখ এবং সময় উভয়কে একত্রে ধারণ করে।
import java.time.LocalDateTime;
public class SetSpecificDateTime {
public static void main(String[] args) {
// Creating a specific date and time
LocalDateTime dateTime = LocalDateTime.of(2024, 12, 23, 14, 30); // 23rd December, 2024, 14:30
System.out.println("Specific DateTime: " + dateTime);
// Getting the current date and time
LocalDateTime currentDateTime = LocalDateTime.now();
System.out.println("Current DateTime: " + currentDateTime);
}
}
আউটপুট:
Specific DateTime: 2024-12-23T14:30
Current DateTime: 2024-12-23T14:30:15.500
ব্যাখ্যা:
LocalDateTime.of(2024, 12, 23, 14, 30): এটি একটি নির্দিষ্ট তারিখ এবং সময় তৈরি করে (২৩ ডিসেম্বর ২০২৪, ১৪:৩০)।LocalDateTime.now(): এটি বর্তমান তারিখ এবং সময় ফেরত দেয়।
2. সময়ের সাথে কাজ করা (Working with Time)
Java 8 এর Duration এবং Period ক্লাস ব্যবহার করে আপনি সময়ের পার্থক্য বা সময়ের মান নির্ধারণ করতে পারেন।
2.1 Duration ক্লাসের মাধ্যমে সময়ের পার্থক্য বের করা:
Duration ক্লাসটি সময় (ঘণ্টা, মিনিট, সেকেন্ড, মিলিসেকেন্ড) এর পার্থক্য বের করার জন্য ব্যবহৃত হয়।
import java.time.*;
public class DurationExample {
public static void main(String[] args) {
LocalTime start = LocalTime.of(10, 15); // Start time: 10:15
LocalTime end = LocalTime.of(14, 30); // End time: 14:30
// Calculate the duration between two times
Duration duration = Duration.between(start, end);
System.out.println("Duration: " + duration.toHours() + " hours " + duration.toMinutes() % 60 + " minutes");
}
}
আউটপুট:
Duration: 4 hours 15 minutes
ব্যাখ্যা:
Duration.between(start, end): এটি দুটিLocalTimeএর মধ্যে সময়ের পার্থক্য বের করে এবং সেই পার্থক্যকে Duration হিসেবে ফেরত দেয়।
2.2 Period ক্লাসের মাধ্যমে তারিখের পার্থক্য বের করা:
Period ক্লাসটি তারিখের পার্থক্য বের করার জন্য ব্যবহৃত হয় (যেমন, বছর, মাস, দিন)।
import java.time.*;
public class PeriodExample {
public static void main(String[] args) {
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);
System.out.println("Period: " + period.getMonths() + " months " + period.getDays() + " days");
}
}
আউটপুট:
Period: 11 months 30 days
ব্যাখ্যা:
Period.between(startDate, endDate): এটি দুটিLocalDateএর মধ্যে তারিখের পার্থক্য বের করে এবং সেই পার্থক্যকে Period হিসেবে ফেরত দেয়।
3. ZonedDateTime - টাইমজোন সহ সময়ের সাথে কাজ করা
ZonedDateTime ক্লাসটি LocalDateTime এর মতো, তবে এতে টাইমজোন তথ্যও থাকে, যা আন্তর্জাতিক সময় হিসাব করতে সাহায্য করে।
import java.time.*;
public class ZonedDateTimeExample {
public static void main(String[] args) {
ZonedDateTime zonedDateTime = ZonedDateTime.now(ZoneId.of("America/New_York"));
System.out.println("Current ZonedDateTime in New York: " + zonedDateTime);
// Set specific ZonedDateTime
ZonedDateTime specificZonedDateTime = ZonedDateTime.of(2024, 12, 23, 14, 30, 0, 0, ZoneId.of("Europe/London"));
System.out.println("Specific ZonedDateTime in London: " + specificZonedDateTime);
}
}
আউটপুট:
Current ZonedDateTime in New York: 2024-12-23T14:30:00-05:00[America/New_York]
Specific ZonedDateTime in London: 2024-12-23T14:30+00:00[Europe/London]
ব্যাখ্যা:
ZonedDateTime.now(ZoneId.of("America/New_York")): এটি নিউইয়র্ক টাইমজোনের বর্তমান সময় ফেরত দেয়।ZonedDateTime.of(): এটি নির্দিষ্ট একটি তারিখ, সময় এবং টাইমজোন দিয়ে ZonedDateTime তৈরি করে।
Java 8 এর java.time প্যাকেজটি টাইম এবং তারিখ পরিচালনা করার জন্য একটি শক্তিশালী এবং সুবিধাজনক API সরবরাহ করে। এটি LocalDateTime, LocalDate, LocalTime, ZonedDateTime ক্লাসসহ আরো অনেক বৈশিষ্ট্য নিয়ে আসে যা immutable, thread-safe, এবং অত্যন্ত clear API ব্যবহারের মাধ্যমে সময় এবং তারিখের পরিচালনাকে সহজ এবং দক্ষ করে তোলে।
LocalTime ক্লাসটি Java 8-এ java.time প্যাকেজে অন্তর্ভুক্ত হয়েছে এবং এটি সময়ের নির্দিষ্ট অংশ (যেমন ঘণ্টা, মিনিট, সেকেন্ড) প্রতিনিধিত্ব করে। LocalTime অবজেক্টটি টাইমজোন বা ডেটা সম্পর্কিত তথ্য ছাড়া শুধুমাত্র সময় (hours, minutes, seconds) ধারণ করে।
এখানে আমরা LocalTime ক্লাসের কিছু জনপ্রিয় মেথড plusHours, minusMinutes, isBefore, এবং isAfter সম্পর্কে বিস্তারিত আলোচনা করব।
1. plusHours(long hoursToAdd)
plusHours মেথডটি বর্তমান LocalTime অবজেক্টের উপর নির্দিষ্ট ঘণ্টা যোগ করে একটি নতুন LocalTime অবজেক্ট রিটার্ন করে। এটি immutable এবং বর্তমান অবজেক্টে কোন পরিবর্তন করে না।
ব্যবহার:
plusHours(long hoursToAdd): এখানেhoursToAddহচ্ছে যে সংখ্যক ঘণ্টা আপনি যোগ করতে চান।
উদাহরণ:
import java.time.LocalTime;
public class LocalTimeExample {
public static void main(String[] args) {
// Current time
LocalTime time = LocalTime.of(10, 30);
// Add 3 hours to the time
LocalTime newTime = time.plusHours(3);
System.out.println("Original Time: " + time); // 10:30
System.out.println("New Time (after adding 3 hours): " + newTime); // 13:30
}
}
আউটপুট:
Original Time: 10:30
New Time (after adding 3 hours): 13:30
ব্যাখ্যা:
- এখানে আমরা
10:30তে ৩ ঘণ্টা যোগ করেছি এবং ফলস্বরূপ13:30পেয়েছি।
2. minusMinutes(long minutesToSubtract)
minusMinutes মেথডটি বর্তমান LocalTime অবজেক্ট থেকে নির্দিষ্ট মিনিট কমিয়ে একটি নতুন LocalTime অবজেক্ট রিটার্ন করে। এটি immutable এবং কোনো পরিবর্তন করে না।
ব্যবহার:
minusMinutes(long minutesToSubtract): এখানেminutesToSubtractহচ্ছে যে সংখ্যক মিনিট আপনি কমাতে চান।
উদাহরণ:
import java.time.LocalTime;
public class LocalTimeExample {
public static void main(String[] args) {
// Current time
LocalTime time = LocalTime.of(10, 30);
// Subtract 45 minutes from the time
LocalTime newTime = time.minusMinutes(45);
System.out.println("Original Time: " + time); // 10:30
System.out.println("New Time (after subtracting 45 minutes): " + newTime); // 9:45
}
}
আউটপুট:
Original Time: 10:30
New Time (after subtracting 45 minutes): 9:45
ব্যাখ্যা:
- এখানে আমরা
10:30থেকে ৪৫ মিনিট কমিয়ে9:45পেয়েছি।
3. isBefore(LocalTime other)
isBefore মেথডটি একটি LocalTime অবজেক্টের সাথে তুলনা করে জানায় যে এটি অন্য একটি LocalTime অবজেক্টের আগে কি না। এটি boolean মান রিটার্ন করে: যদি প্রথম অবজেক্টটি দ্বিতীয় অবজেক্টের আগে থাকে, তবে এটি true ফেরত দেয়, অন্যথায় false।
ব্যবহার:
isBefore(LocalTime other): এখানেotherহচ্ছে যে সময়টির সাথে তুলনা করা হবে।
উদাহরণ:
import java.time.LocalTime;
public class LocalTimeExample {
public static void main(String[] args) {
// Two times
LocalTime time1 = LocalTime.of(10, 30);
LocalTime time2 = LocalTime.of(12, 15);
// Check if time1 is before time2
boolean result = time1.isBefore(time2);
System.out.println("Is time1 before time2? " + result); // true
}
}
আউটপুট:
Is time1 before time2? true
ব্যাখ্যা:
- এখানে
10:30কে12:15এর সাথে তুলনা করা হচ্ছে এবং10:30অবশ্যই12:15এর আগে থাকে, তাই আউটপুটtrue।
4. isAfter(LocalTime other)
isAfter মেথডটি একটি LocalTime অবজেক্টের সাথে তুলনা করে জানায় যে এটি অন্য একটি LocalTime অবজেক্টের পরে কি না। এটি boolean মান রিটার্ন করে: যদি প্রথম অবজেক্টটি দ্বিতীয় অবজেক্টের পরে থাকে, তবে এটি true ফেরত দেয়, অন্যথায় false।
ব্যবহার:
isAfter(LocalTime other): এখানেotherহচ্ছে যে সময়টির সাথে তুলনা করা হবে।
উদাহরণ:
import java.time.LocalTime;
public class LocalTimeExample {
public static void main(String[] args) {
// Two times
LocalTime time1 = LocalTime.of(10, 30);
LocalTime time2 = LocalTime.of(8, 15);
// Check if time1 is after time2
boolean result = time1.isAfter(time2);
System.out.println("Is time1 after time2? " + result); // true
}
}
আউটপুট:
Is time1 after time2? true
ব্যাখ্যা:
- এখানে
10:30কে8:15এর সাথে তুলনা করা হচ্ছে এবং10:30অবশ্যই8:15এর পরে থাকে, তাই আউটপুটtrue।
সংক্ষেপে LocalTime মেথডগুলি:
plusHours(long hoursToAdd): বর্তমান সময়ের উপর নির্দিষ্ট ঘণ্টা যোগ করে।minusMinutes(long minutesToSubtract): বর্তমান সময় থেকে নির্দিষ্ট মিনিট কমায়।isBefore(LocalTime other): যদি বর্তমান সময়টি অন্য সময়ের আগে থাকে, তবেtrueফেরত দেয়।isAfter(LocalTime other): যদি বর্তমান সময়টি অন্য সময়ের পরে থাকে, তবেtrueফেরত দেয়।
LocalTime ক্লাসটি Java 8 এর java.time প্যাকেজের একটি অত্যন্ত গুরুত্বপূর্ণ অংশ যা সময়ের ব্যবস্থাপনা এবং টাইম অপারেশনগুলোকে সহজ করে তোলে। এর plusHours, minusMinutes, isBefore, এবং isAfter মেথডগুলি সময়ের উপর বিভিন্ন অপারেশন করার জন্য অত্যন্ত কার্যকরী। এগুলি immutable ক্লাসের অংশ, তাই এগুলি ব্যবহারের মাধ্যমে টাইম সম্পর্কিত অপারেশনগুলি নিরাপদ এবং কার্যকরী হয়।
Read more