Date এবং Calendar ক্লাসের ধারণা

Date এবং Calendar ক্লাস - জাভা ইউটিল.প্যাকেজ (Java.util Package) - Java Technologies

253

java.util.Date এবং java.util.Calendar ক্লাস দুটি Java প্রোগ্রামিং ভাষায় date এবং time সম্পর্কিত কার্যাবলী পরিচালনা করতে ব্যবহৃত হয়। যদিও বর্তমানে java.time প্যাকেজ (Java 8-এর পর) সময় এবং তারিখ সম্পর্কিত আরও উন্নত এবং নির্ভুল API সরবরাহ করে, তবুও Date এবং Calendar এখনও কিছু পুরনো কোডে ব্যবহৃত হয় এবং তাদের গুরুত্বপূর্ণ ভূমিকা রয়েছে।

এখানে Date এবং Calendar ক্লাসের বৈশিষ্ট্য এবং ব্যবহারের বিস্তারিত আলোচনা করা হবে।


1. Date ক্লাস:

java.util.Date ক্লাসটি একটি নির্দিষ্ট তারিখ এবং সময়ের প্রতিনিধিত্ব করে এবং এটি milliseconds হিসেবে বর্তমান সময়ের মান ধারণ করে (January 1, 1970, 00:00:00 GMT থেকে)। যদিও Date ক্লাসটি পরবর্তীতে java.time প্যাকেজের মাধ্যমে উন্নত হয়েছে, এটি এখনও অনেক পুরনো কোডে ব্যবহৃত হয়।

Date ক্লাসের বৈশিষ্ট্য:

  • Date ক্লাসের অবজেক্টের মাধ্যমে আপনি বর্তমান সময় এবং তারিখ পাবেন।
  • এটি একটি নির্দিষ্ট সময়কে milliseconds হিসেবে ধারণ করে।
  • Date ক্লাসে toString() মেথড ব্যবহার করে আপনি একটি readable String তারিখ পেতে পারেন।
  • Date ক্লাসের মাধ্যমে তারিখের সাথে কিছু গাণিতিক অপারেশন (যেমন যোগ বা বিয়োগ) করা সম্ভব নয়।

উদাহরণ:

import java.util.Date;

public class DateExample {
    public static void main(String[] args) {
        // Date অবজেক্ট তৈরি করা
        Date date = new Date();
        
        // বর্তমান তারিখ এবং সময় প্রিন্ট করা
        System.out.println("Current Date and Time: " + date.toString());
    }
}

Output:

Current Date and Time: Mon Dec 23 15:45:22 IST 2024

ব্যাখ্যা:

  • Date অবজেক্টের মাধ্যমে বর্তমান তারিখ এবং সময় toString() মেথড ব্যবহার করে প্রদর্শন করা হয়েছে।

2. Calendar ক্লাস:

java.util.Calendar ক্লাসটি Date ক্লাসের উন্নত সংস্করণ হিসেবে পরিচিত এবং এটি তারিখ এবং সময়ের সাথে আরো জটিল অপারেশন করতে সহায়তা করে। Calendar ক্লাসের মাধ্যমে আপনি তারিখের বিভিন্ন উপাদান (যেমন, বছর, মাস, দিন, ঘণ্টা, মিনিট, সেকেন্ড) অ্যাক্সেস করতে এবং তাদের সাথে গণনা করতে পারেন।

Calendar ক্লাসের বৈশিষ্ট্য:

  • Calendar ক্লাস তারিখের সাথে বিভিন্ন অপারেশন (যেমন, একটি নির্দিষ্ট দিনের যোগ বা বিয়োগ) করতে পারে।
  • Calendar ক্লাসের get(), set(), add(), এবং roll() মেথডের মাধ্যমে আপনি বছরের, মাসের, দিনের, ঘণ্টার এবং অন্যান্য উপাদানগুলো অ্যাক্সেস এবং পরিবর্তন করতে পারেন।
  • এটি Date ক্লাসের পরিবর্তে তারিখের গণনা ও পরিচালনার জন্য বেশি সুবিধাজনক।

উদাহরণ:

import java.util.Calendar;

public class CalendarExample {
    public static void main(String[] args) {
        // Calendar অবজেক্ট তৈরি করা
        Calendar calendar = Calendar.getInstance();

        // বর্তমান বছরের মান প্রিন্ট করা
        int year = calendar.get(Calendar.YEAR);
        System.out.println("Current Year: " + year);

        // বর্তমান মাসের মান প্রিন্ট করা (মাসের সংখ্যা 0 থেকে শুরু হয়, January = 0)
        int month = calendar.get(Calendar.MONTH) + 1;  // January will be 1
        System.out.println("Current Month: " + month);

        // বর্তমান দিনের মান প্রিন্ট করা
        int dayOfMonth = calendar.get(Calendar.DAY_OF_MONTH);
        System.out.println("Current Day of the Month: " + dayOfMonth);
        
        // 10 দিন যোগ করা
        calendar.add(Calendar.DAY_OF_MONTH, 10);
        System.out.println("Date after 10 days: " + calendar.getTime());
    }
}

Output:

Current Year: 2024
Current Month: 12
Current Day of the Month: 23
Date after 10 days: Sun Jan 02 15:45:22 IST 2025

ব্যাখ্যা:

  • Calendar.getInstance() মেথডের মাধ্যমে একটি Calendar অবজেক্ট তৈরি করা হয়েছে।
  • get(Calendar.YEAR), get(Calendar.MONTH), এবং get(Calendar.DAY_OF_MONTH) মেথডগুলোর মাধ্যমে বছর, মাস এবং দিনের মান পাওয়ার জন্য ব্যবহৃত হয়েছে।
  • add(Calendar.DAY_OF_MONTH, 10) মেথডের মাধ্যমে বর্তমান তারিখের ১০ দিন যোগ করা হয়েছে।

Date এবং Calendar ক্লাসের মধ্যে পার্থক্য:

FeatureDateCalendar
PurposeRepresents a specific point in time in milliseconds from January 1, 1970Provides more flexible date and time manipulation (e.g., adding days, months)
MethodsLimited methods for manipulation (e.g., toString(), getTime())Offers a rich set of methods (add(), roll(), get(), set())
Time ZoneTime zone is not directly handled.Can handle time zone and supports TimeZone class.
Support for Date ManipulationDoes not support much date manipulation.Supports complex date operations like adding/subtracting months, days, etc.
Null HandlingCan be null, and it can lead to NullPointerException if not initialized properlyCalendar instances cannot be null if properly instantiated

java.time API - পরবর্তী প্রজন্ম:

Java 8 এর পর java.time প্যাকেজটি Date এবং Calendar ক্লাসগুলির উন্নত সংস্করণ হিসাবে এসেছে। java.time প্যাকেজটি আরও নির্ভুল, পাঠযোগ্য এবং মাল্টিথ্রেডিং পরিবেশে নিরাপদ। LocalDate, LocalTime, LocalDateTime, ZonedDateTime, Duration, এবং Period সহ আরও অনেক নতুন ক্লাস Date এবং Calendar এর পুরনো কোডের চেয়ে অনেক বেশি সুবিধা প্রদান করে।


  • Date এবং Calendar ক্লাসগুলি পুরানো সময় এবং তারিখ ব্যবস্থাপনার জন্য ব্যবহৃত হয়, তবে এগুলির সীমাবদ্ধতা রয়েছে।
  • Calendar ক্লাস Date ক্লাসের তুলনায় বেশি ক্ষমতাশালী এবং এটি তারিখ এবং সময়ের সাথে জটিল গাণিতিক কার্যাবলী করতে সক্ষম।
  • Java 8 এর পর java.time প্যাকেজটি উন্নত এবং নির্ভুল তারিখ এবং সময় ব্যবস্থাপনা সরবরাহ করে, যা Date এবং Calendar এর বিকল্প হিসেবে ব্যবহার করা হয়।

java.util.Date এবং java.util.Calendar আজও অনেক পুরনো কোডে ব্যবহৃত হয়, তবে সেগুলির বিকল্প হিসেবে java.time প্যাকেজটি এখন আধুনিক Java অ্যাপ্লিকেশনের জন্য আরও উপযুক্ত।

Content added By
Promotion

Are you sure to start over?

Loading...