Temporal Interface এর ভূমিকা

Temporal এবং ChronoUnits - জাভা টাইম প্যাকেজ (Java.time Package) - Java Technologies

302

Temporal Interface Java 8 এর java.time প্যাকেজের একটি গুরুত্বপূর্ণ অংশ এবং এটি java.time API এর ভিতরে বিভিন্ন তারিখ এবং সময় সম্পর্কিত ক্লাসগুলোর জন্য একটি সাধারণ ইন্টারফেস হিসেবে কাজ করে। Temporal ইন্টারফেসটি LocalDate, LocalTime, LocalDateTime, ZonedDateTime, Period, Duration এবং আরও অনেক ক্লাসের জন্য একটি সাধারণ মাপ (contract) প্রদান করে, যা বিভিন্ন সময় এবং তারিখের উপর কাজ করার সময় সহায়ক হয়।

Temporal Interface এর ভূমিকা:

Temporal ইন্টারফেসটি তারিখ এবং সময়ের সাথে সম্পর্কিত ক্লাসগুলোর জন্য একটি সাধারণ ইন্টারফেস হিসেবে কাজ করে। এটি তারিখ এবং সময়ের বিভিন্ন অংশ (যেমন দিন, মাস, বছর, ঘণ্টা, মিনিট, সেকেন্ড) সম্পর্কিত ক্যালকুলেশন করতে সহায়তা করে।

এই ইন্টারফেসের মাধ্যমে আপনি বিভিন্ন ধরনের তারিখ এবং সময়ের মানের মধ্যে পার্থক্য বের করতে, তারিখ এবং সময় যোগ বা বিয়োগ করতে পারবেন, এবং সাধারণ তারিখ-সময়ের উপর অপারেশন করতে পারবেন।

Temporal Interface এর মূল মেথডসমূহ:

  1. isSupported(TemporalField field):
    • এটি চেক করে যে একটি নির্দিষ্ট TemporalField (যেমন DAY_OF_MONTH, MONTH, YEAR ইত্যাদি) Temporal অবজেক্টে সমর্থিত কিনা।
  2. plus(long amountToAdd, TemporalUnit unit):
    • এটি একটি নির্দিষ্ট পরিমাণ সময় বা তারিখ যোগ করার জন্য ব্যবহৃত হয়। উদাহরণস্বরূপ, আপনি দিন, মাস, বা ঘণ্টা যোগ করতে পারেন।
  3. minus(long amountToSubtract, TemporalUnit unit):
    • এটি একটি নির্দিষ্ট পরিমাণ সময় বা তারিখ বিয়োগ করার জন্য ব্যবহৃত হয়।
  4. query(TemporalQuery<R> query):
    • এটি একটি কাস্টম কুয়েরি বা হিসাবের মাধ্যমে Temporal অবজেক্টের মান বের করতে ব্যবহৃত হয়।
  5. adjustInto(Temporal temporal):
    • এটি একটি Temporal অবজেক্টে কিছু পরিবর্তন বা সমন্বয় করতে ব্যবহৃত হয় (যেমন, নির্দিষ্ট মাস বা দিন সেট করা)।

Temporal Interface এর কিছু সাধারণ ব্যবহার:

  1. LocalDate এবং LocalDateTime এর মধ্যে কাজ করার জন্য Temporal ইন্টারফেস ব্যবহার: Temporal ইন্টারফেসের মাধ্যমে আপনি LocalDate এবং LocalDateTime এর উপর বিভিন্ন অপারেশন করতে পারেন, যেমন তাদের মধ্যে পার্থক্য বের করা, সময় যোগ বা বিয়োগ করা।

উদাহরণ 1: Temporal Interface এর মাধ্যমে তারিখের পার্থক্য বের করা:

import java.time.*;
import java.time.temporal.*;

public class TemporalExample {
    public static void main(String[] args) {
        // Create two LocalDate objects
        LocalDate startDate = LocalDate.of(2024, 1, 1);
        LocalDate endDate = LocalDate.of(2024, 12, 31);

        // 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): এটি দুটি LocalDate অবজেক্টের মধ্যে পার্থক্য বের করে এবং একটি Period অবজেক্ট প্রদান করে, যা বছরের, মাসের এবং দিনের পার্থক্য নির্ধারণ করে।

উদাহরণ 2: Temporal Interface ব্যবহার করে সময়ের পরিমাণ যোগ বা বিয়োগ করা:

import java.time.*;
import java.time.temporal.*;

public class TemporalAddSubtractExample {
    public static void main(String[] args) {
        // Create a LocalTime object
        LocalTime time = LocalTime.of(10, 30);  // 10:30 AM

        // Add 5 hours to the time
        LocalTime newTime = time.plus(5, ChronoUnit.HOURS);
        System.out.println("Time after adding 5 hours: " + newTime);

        // Subtract 30 minutes from the time
        LocalTime earlierTime = time.minus(30, ChronoUnit.MINUTES);
        System.out.println("Time after subtracting 30 minutes: " + earlierTime);
    }
}

আউটপুট:

Time after adding 5 hours: 15:30
Time after subtracting 30 minutes: 10:00

ব্যাখ্যা:

  • plus(5, ChronoUnit.HOURS): এটি LocalTime অবজেক্টে ৫ ঘণ্টা যোগ করে।
  • minus(30, ChronoUnit.MINUTES): এটি LocalTime অবজেক্ট থেকে ৩০ মিনিট বিয়োগ করে।

উদাহরণ 3: Temporal Interface ব্যবহার করে সময়ের পরিমাণ চেক করা:

import java.time.*;
import java.time.temporal.*;

public class TemporalCheckExample {
    public static void main(String[] args) {
        // Create a LocalDate object
        LocalDate date = LocalDate.of(2024, 12, 23);

        // Check if the field is supported
        boolean isSupported = date.isSupported(ChronoField.MONTH_OF_YEAR);
        System.out.println("Is MONTH_OF_YEAR supported? " + isSupported);

        // Check if a specific field is supported
        boolean isDayOfWeekSupported = date.isSupported(ChronoField.DAY_OF_WEEK);
        System.out.println("Is DAY_OF_WEEK supported? " + isDayOfWeekSupported);
    }
}

আউটপুট:

Is MONTH_OF_YEAR supported? true
Is DAY_OF_WEEK supported? true

ব্যাখ্যা:

  • isSupported(ChronoField.MONTH_OF_YEAR): এটি চেক করে যে, MONTH_OF_YEAR ফিল্ডটি LocalDate অবজেক্টে সমর্থিত কিনা।
  • isSupported(ChronoField.DAY_OF_WEEK): এটি চেক করে যে, DAY_OF_WEEK ফিল্ডটি LocalDate অবজেক্টে সমর্থিত কিনা।

Temporal Interface এর অন্যান্য গুরুত্বপূর্ণ ব্যবহার:

  1. ChronoUnit ব্যবহার করে সময় এবং তারিখের ক্যালকুলেশন:

    • ChronoUnit হল একটি enum যা Temporal এর উপর বিভিন্ন ইউনিট (যেমন, ঘণ্টা, মিনিট, দিন, মাস, বছর) ভিত্তিক ক্যালকুলেশন পরিচালনা করে।
    LocalDateTime now = LocalDateTime.now();
    LocalDateTime futureTime = now.plus(10, ChronoUnit.DAYS);  // Add 10 days
    
  2. TemporalAdjuster ব্যবহার:
    • এটি একটি ইন্টারফেস যা তারিখে নির্দিষ্ট পরিবর্তন করতে সহায়তা করে, যেমন: withDayOfMonth(), firstDayOfMonth(), nextOrSame() ইত্যাদি।

Temporal Interface হল Java 8 এর java.time প্যাকেজের একটি গুরুত্বপূর্ণ অংশ যা Date/Time সম্পর্কিত বিভিন্ন অবজেক্টের উপর বিভিন্ন কার্যক্রম চালানোর জন্য ব্যবহৃত হয়। এটি তারিখ এবং সময়ের বিভিন্ন অংশ পরিচালনা, যোগ বা বিয়োগ, এবং সমর্থনযোগ্য ক্ষেত্রগুলির চেক করার জন্য ব্যবহৃত হয়। বিভিন্ন LocalDate, LocalTime, LocalDateTime, ZonedDateTime ইত্যাদি ক্লাসের মাধ্যমে এটি তারিখ এবং সময়ের বিভিন্ন কাজ করার জন্য একটি সাধারণ ইন্টারফেস সরবরাহ করে।

Content added By
Promotion

Are you sure to start over?

Loading...