ট্র্যাক
/
Java
Java
/
অনুশীলনী
/
সৌন্দর্যের জন্য বুকিং
সৌন্দর্যের জন্য বুকিং

সৌন্দর্যের জন্য বুকিং

লার্নিং অনুশীলনী

ভূমিকা

তারিখ-সময়

Java 8-এ প্রবর্তিত java.time প্যাকেজে তারিখ ও সময় নিয়ে কাজ করার জন্য বেশ কয়েকটি ক্লাস রয়েছে।

LocalDate

java.time.LocalDate ক্লাসটি ISO-8601 ক্যালেন্ডার সিস্টেম অনুসারে টাইম-জোন ছাড়া একটি তারিখ প্রকাশ করে, যেমন 2007-12-03:

LocalDate date = LocalDate.of(2007, 12, 3);

তারিখ অন্য তারিখের সাথে তুলনা করা যায়:

LocalDate date1 = LocalDate.of(2007, 12, 3);
LocalDate date2 = LocalDate.of(2007, 12, 4);

date1.isBefore(date2);
// => true

date1.isAfter(date2);
// => false

একটি LocalDate ইনস্ট্যান্সে সেখান থেকে সময়ের অংশগুলো বের করার জন্য গেটার থাকে:

LocalDate date = LocalDate.of(2007, 12, 3);

date.getDayOfMonth();
// => 3

একটি LocalDate ইনস্ট্যান্সে এতে সময়ের একক যোগ করার মেথড থাকে:

Note

এই মেথডগুলো একটি নতুন LocalDate ইনস্ট্যান্স রিটার্ন করে এবং বিদ্যমান ইনস্ট্যান্স পরিবর্তন করে না, কারণ LocalDate ক্লাসটি ইমিউটেবল।

LocalDate date = LocalDate.of(2007, 12, 3);

date.plusDays(3);
// => 2007-12-06

LocalDateTime

java.time.LocalDateTime ক্লাসটি ISO-8601 ক্যালেন্ডার সিস্টেম অনুসারে টাইম-জোন ছাড়া একটি তারিখ-সময় প্রকাশ করে, যেমন 2007-12-03T10:15:30:

LocalDateTime datetime = LocalDateTime.of(2007, 12, 3, 10, 15, 30);

আপনি একটি LocalDate ইনস্ট্যান্সকে LocalDateTime-এ রূপান্তর করতে পারেন:

LocalDate date = LocalDate.of(2007, 12, 3);
LocalDateTime datetime = date.atTime(10, 15, 30);
datetime.toString();
// => "2007-12-03T10:15:30"

তারিখ-সময় ফরম্যাট করা

LocalDate ও LocalDateTime দুটোই String-এ এবং String থেকে রূপান্তর করার সময় ISO-8601 স্ট্যান্ডার্ড নোটেশন ব্যবহার করে।

LocalDateTime datetime = LocalDateTime.of(2007, 12, 3, 10, 15, 30);
LocalDateTime parsed = LocalDateTime.parse("2007-12-03T10:15:30");

datetime.isEqual(parsed);
// => true

এভাবে একটি ভিন্ন ফরম্যাট ব্যবহার করে String থেকে LocalDate বা LocalDateTime পার্স করার চেষ্টা করা সম্ভব নয়। পরিবর্তে, কাস্টম ফরম্যাট ব্যবহার করে তারিখ ফরম্যাট করতে আপনার java.time.format.DateTimeFormatter ব্যবহার করা উচিত:

DateTimeFormatter parser = DateTimeFormatter.ofPattern("dd/MM/yyyy");
LocalDate date = LocalDate.parse("03/12/2007", parser);

DateTimeFormatter printer = DateTimeFormatter.ofPattern("MMMM d, yyyy");
printer.format(date);
// => "December 3, 2007"

বিভিন্ন অঞ্চলের জন্য ফরম্যাট ও পার্স করার উদ্দেশ্যে কাস্টম ফরম্যাট তৈরি করার সময় একটি লোকেলও নির্দিষ্ট করা যায়:

DateTimeFormatter.ofPattern("MMMM d, yyyy", Locale.FRENCH).format(date);
// => décembre 3, 2007

DateTimeFormatter.ofPattern("MMMM d, yyyy", Locale.of("pt")).format(date);
// => dezembro 3, 2007

নির্দেশনা

এই অনুশীলনীতে আপনি নিউ ইয়র্কের একটি বিউটি সেলুনের জন্য অ্যাপয়েন্টমেন্ট শিডিউলার নিয়ে কাজ করবেন, যেটি ২০১২ সালের ১৫ই সেপ্টেম্বর চালু হয়েছিল।

1. অ্যাপয়েন্টমেন্টের তারিখ পার্স করুন

একটি অ্যাপয়েন্টমেন্ট তারিখের টেক্সট উপস্থাপনাকে সংশ্লিষ্ট LocalDateTime-এ পার্স করার জন্য AppointmentScheduler.schedule() মেথডটি ইমপ্লিমেন্ট করুন:

AppointmentScheduler scheduler = new AppointmentScheduler();
scheduler.schedule("7/25/2019 13:45:00");
// => LocalDateTime.of(2019, 7, 25, 13, 45, 0)

2. অ্যাপয়েন্টমেন্ট আগেই পেরিয়ে গেছে কি না পরীক্ষা করুন

AppointmentScheduler.hasPassed() মেথডটি ইমপ্লিমেন্ট করুন, যা একটি অ্যাপয়েন্টমেন্ট তারিখ নেয় এবং অ্যাপয়েন্টমেন্টটি অতীতে কোনো এক সময়ে ছিল কি না তা পরীক্ষা করে:

AppointmentScheduler scheduler = new AppointmentScheduler();
scheduler.hasPassed(LocalDateTime.of(1999, 12, 31, 9, 0, 0));
// => true

3. অ্যাপয়েন্টমেন্টটি বিকেলে কি না পরীক্ষা করুন

AppointmentScheduler.isAfternoonAppointment() মেথডটি ইমপ্লিমেন্ট করুন, যা একটি অ্যাপয়েন্টমেন্ট তারিখ নেয় এবং অ্যাপয়েন্টমেন্টটি বিকেলে (>= 12:00 এবং < 18:00) কি না তা পরীক্ষা করে:

AppointmentScheduler scheduler = new AppointmentScheduler();
scheduler.isAfternoonAppointment(LocalDateTime.of(2019, 03, 29, 15, 0, 0))
// => true

4. অ্যাপয়েন্টমেন্টের সময় ও তারিখ বর্ণনা করুন

AppointmentScheduler.getDescription() মেথডটি ইমপ্লিমেন্ট করুন, যা একটি অ্যাপয়েন্টমেন্ট তারিখ নেয় এবং সেই তারিখ ও সময়ের একটি বর্ণনা রিটার্ন করে:

AppointmentScheduler scheduler = new AppointmentScheduler();
scheduler.getDescription(LocalDateTime.of(2019, 03, 29, 15, 0, 0))
// => "You have an appointment on Friday, March 29, 2019, at 3:00 PM."

5. বার্ষিকীর তারিখ রিটার্ন করুন

AppointmentScheduler.getAnniversaryDate() মেথডটি ইমপ্লিমেন্ট করুন, যা এই বছরের বার্ষিকীর তারিখ রিটার্ন করে, যা ১৫ই সেপ্টেম্বর:

AppointmentScheduler scheduler = new AppointmentScheduler();
scheduler.getAnniversaryDate()
// => LocalDate.of(<current year>, 9, 15)
GitHub-এর মাধ্যমে সম্পাদনা করুন লিংকটি একটি নতুন উইন্ডো বা ট্যাবে খোলে
Java Exercism

সৌন্দর্যের জন্য বুকিং শুরু করতে প্রস্তুত?

Exercism-এ সাইন আপ করুন, Java ট্র্যাকের 26টি কনসেপ্ট158টি অনুশীলনী আর সত্যিকারের মানুষের মেন্টরিং দিয়ে শিখুন ও দক্ষ হয়ে উঠুন, সম্পূর্ণ বিনামূল্যে।