TemporalAdjusters ক্লাসটি java.time প্যাকেজের একটি গুরুত্বপূর্ণ অংশ যা Temporal অবজেক্ট (যেমন LocalDate, LocalTime, LocalDateTime, ZonedDateTime) এর তারিখ এবং সময়ের মান পরিবর্তন বা adjustment করতে ব্যবহৃত হয়। TemporalAdjusters পূর্বনির্ধারিত কিছু সাধারণ date adjustment ফাংশন প্রদান করে, যেমন মাসের প্রথম দিন, মাসের শেষ দিন, বা সপ্তাহের প্রথম দিন ইত্যাদি।
TemporalAdjusters কি?
TemporalAdjusters একটি utility ক্লাস যা Temporal অবজেক্টের তারিখ পরিবর্তন বা সংশোধন করতে সহায়তা করে। এটি TemporalAdjuster ইন্টারফেস বাস্তবায়ন করে এবং সাধারণভাবে LocalDate, LocalDateTime, এবং ZonedDateTime এর মত টাইম ক্লাসগুলোর জন্য কাজ করে।
TemporalAdjusters ক্লাসটি বিভিন্ন ধরনের adjustment করতে সাহায্য করে যেমন:
- মাসের প্রথম দিন
- মাসের শেষ দিন
- সপ্তাহের প্রথম দিন
- সপ্তাহের শেষ দিন
- বছরের প্রথম দিন
TemporalAdjusters এর প্রয়োজনীয়তা:
TemporalAdjusters ক্লাসের মাধ্যমে আপনি সহজেই তারিখ এবং সময়ের মানকে প্রোগ্রাম্যাটিকভাবে adjust বা manipulate করতে পারবেন। এর ব্যবহারকারী বান্ধব পদ্ধতিতে জটিল তারিখ গণনা এবং সময়ের পরিবর্তনকে সহজ করে তোলে, যা আপনার অ্যাপ্লিকেশন ডেভেলপমেন্টে অনেক সুবিধা দেয়। উদাহরণস্বরূপ, যদি আপনাকে প্রতিটি মাসের প্রথম দিন বা তৃতীয় সপ্তাহের রবিবার পেতে হয়, তবে TemporalAdjusters এর মাধ্যমে আপনি খুব সহজেই এটি করতে পারেন।
TemporalAdjusters এর কিছু উদাহরণ:
1. মাসের প্রথম দিন পাওয়া (firstDayOfMonth):
TemporalAdjusters.firstDayOfMonth() ব্যবহার করে আপনি মাসের প্রথম দিন পেতে পারেন।
import java.time.*;
import java.time.temporal.*;
public class TemporalAdjusterExample {
public static void main(String[] args) {
// Current date
LocalDate currentDate = LocalDate.now();
System.out.println("Current Date: " + currentDate);
// Get the first day of the current month
LocalDate firstDayOfMonth = currentDate.with(TemporalAdjusters.firstDayOfMonth());
System.out.println("First Day of Month: " + firstDayOfMonth);
}
}
আউটপুট:
Current Date: 2024-12-23
First Day of Month: 2024-12-01
ব্যাখ্যা:
with(TemporalAdjusters.firstDayOfMonth())ব্যবহার করে বর্তমান মাসের প্রথম দিন পাওয়া গেছে।
2. মাসের শেষ দিন পাওয়া (lastDayOfMonth):
TemporalAdjusters.lastDayOfMonth() ব্যবহার করে মাসের শেষ দিন পাওয়া যায়।
import java.time.*;
import java.time.temporal.*;
public class TemporalAdjusterExample {
public static void main(String[] args) {
// Current date
LocalDate currentDate = LocalDate.now();
System.out.println("Current Date: " + currentDate);
// Get the last day of the current month
LocalDate lastDayOfMonth = currentDate.with(TemporalAdjusters.lastDayOfMonth());
System.out.println("Last Day of Month: " + lastDayOfMonth);
}
}
আউটপুট:
Current Date: 2024-12-23
Last Day of Month: 2024-12-31
ব্যাখ্যা:
with(TemporalAdjusters.lastDayOfMonth())ব্যবহার করে বর্তমান মাসের শেষ দিন পাওয়া গেছে।
3. সপ্তাহের প্রথম দিন পাওয়া (firstDayOfWeek):
TemporalAdjusters.firstDayOfWeek() ব্যবহার করে বর্তমান সপ্তাহের প্রথম দিন পাওয়া যায়।
import java.time.*;
import java.time.temporal.*;
public class TemporalAdjusterExample {
public static void main(String[] args) {
// Current date
LocalDate currentDate = LocalDate.now();
System.out.println("Current Date: " + currentDate);
// Get the first day of the week (Monday, assuming default locale)
LocalDate firstDayOfWeek = currentDate.with(TemporalAdjusters.firstDayOfWeek());
System.out.println("First Day of Week: " + firstDayOfWeek);
}
}
আউটপুট:
Current Date: 2024-12-23
First Day of Week: 2024-12-23
ব্যাখ্যা:
with(TemporalAdjusters.firstDayOfWeek())ব্যবহার করে বর্তমান সপ্তাহের প্রথম দিন পাওয়া গেছে। এর মানে, যদি আপনার লোকাল (locale) অনুযায়ী সপ্তাহ সোমবার থেকে শুরু হয়, তবে ২৩ ডিসেম্বর ২০২৪ হবে।
4. সাপ্তাহিক সাপ্তাহিক প্রথম দিন বা শেষ দিন পাওয়া (firstInMonth() এবং lastInMonth()):
firstInMonth() এবং lastInMonth() ব্যবহার করে নির্দিষ্ট সপ্তাহের প্রথম বা শেষ দিন পাওয়া যায়।
import java.time.*;
import java.time.temporal.*;
public class TemporalAdjusterExample {
public static void main(String[] args) {
// Current date
LocalDate currentDate = LocalDate.now();
System.out.println("Current Date: " + currentDate);
// Get the first Sunday of the current month
LocalDate firstSundayOfMonth = currentDate.with(TemporalAdjusters.firstInMonth(DayOfWeek.SUNDAY));
System.out.println("First Sunday of Month: " + firstSundayOfMonth);
// Get the last Friday of the current month
LocalDate lastFridayOfMonth = currentDate.with(TemporalAdjusters.lastInMonth(DayOfWeek.FRIDAY));
System.out.println("Last Friday of Month: " + lastFridayOfMonth);
}
}
আউটপুট:
Current Date: 2024-12-23
First Sunday of Month: 2024-12-01
Last Friday of Month: 2024-12-29
ব্যাখ্যা:
firstInMonth(DayOfWeek.SUNDAY): বর্তমান মাসের প্রথম রবিবার।lastInMonth(DayOfWeek.FRIDAY): বর্তমান মাসের শেষ শুক্রবার।
TemporalAdjusters এর কিছু গুরুত্বপূর্ণ মেথড:
firstDayOfMonth(): মাসের প্রথম দিন।lastDayOfMonth(): মাসের শেষ দিন।firstDayOfYear(): বছরের প্রথম দিন।lastDayOfYear(): বছরের শেষ দিন।firstDayOfWeek(): সপ্তাহের প্রথম দিন (সাধারণত সোমবার)।lastDayOfWeek(): সপ্তাহের শেষ দিন (সাধারণত রবিবার)।next(DayOfWeek): পরবর্তী নির্দিষ্ট দিন (যেমন পরবর্তী সোমবার)।previous(DayOfWeek): পূর্ববর্তী নির্দিষ্ট দিন (যেমন পূর্ববর্তী রবিবার)।firstInMonth(DayOfWeek): মাসের প্রথম নির্দিষ্ট দিন (যেমন প্রথম রবিবার)।lastInMonth(DayOfWeek): মাসের শেষ নির্দিষ্ট দিন (যেমন শেষ শুক্রবার)।
TemporalAdjusters এর ব্যবহারিক প্রয়োগ:
- Report Generation: রিপোর্ট জেনারেশন প্রক্রিয়ায়, যেমন মাসিক রিপোর্টের জন্য মাসের প্রথম দিন বা শেষ দিন নির্ধারণ।
- Financial Calculations: Financial Calculations যেমন মাসিক বেতন হিসাব করার সময় মাসের প্রথম দিন বা শেষ দিন নির্ধারণ।
- Event Scheduling: ইভেন্ট শিডিউল করার জন্য, যেমন পরবর্তী রোববার বা শুক্রবার ইভেন্ট শিডিউল করা।
TemporalAdjusters Java 8 এর java.time প্যাকেজের একটি শক্তিশালী অংশ, যা তারিখ এবং সময়ের পরিবর্তন বা সমন্বয় (adjustment) করার জন্য ব্যবহৃত হয়। এটি বিশেষভাবে ব্যবহারকারীর জন্য সহজ এবং সঠিকভাবে তারিখের বিভিন্ন অঙ্গসংস্থান তৈরি এবং ম্যানিপুলেশন করতে সহায়তা করে। আপনি এটি মাসের প্রথম দিন, সপ্তাহের প্রথম দিন, সাপ্তাহিক বা মাসিক নির্দিষ্ট দিন বের করতে এবং আরও অনেক কাজে ব্যবহার করতে পারেন।
Read more