কম্পিউটার টিউটোরিয়াল

জাভাস্ক্রিপ্টে তারিখ (দিন, মাস, বছর) থেকে সপ্তাহের দিন বের করা

আমাদের একটি জাভাস্ক্রিপ্ট ফাংশন লিখতে হবে যা তিনটি আর্গুমেন্ট নেবে: দিন, মাস এবং বছর। এই তিনটি ইনপুটের ভিত্তিতে ফাংশনটি সেটি তারিখে সপ্তাহের দিন বের করবে।

উদাহরণস্বরূপ: ইনপুট যদি হয়:

day = 15, month = 8, year = 1993

আউটপুট

তাহলে আউটপুট হবে:

const output = 'Sunday'

উদাহরণ

কোডটি হবে:

const dayOfTheWeek = (day, month, year) => {
  // JS months start at 0
  return dayOfTheWeekJS(day, month - 1, year);
}
function dayOfTheWeekJS(day, month, year) {
  const DAYS = [
    'Sunday',
    'Monday',
    'Tuesday',
    'Wednesday',
    'Thursday',
    'Friday',
    'Saturday',
  ];
  const DAY_1970_01_01 = 4;
  let days = day - 1;
  while (month - 1 >= 0) {
    days += daysInMonthJS(month - 1, year);
    month -= 1;
  }
  while (year - 1 >= 1970) {
    days += daysInYear(year - 1);
    year -= 1;
  }
  return DAYS[(days + DAY_1970_01_01) % DAYS.length];
}
function daysInMonthJS(month, year) {
  const days = [
    31, // January
    28 + (isLeapYear(year) ? 1 : 0), // Feb,
    31, // March
    30, // April
    31, // May
    30, // June
    31, // July
    31, // August
    30, // September
    31, // October
    30, // November
    31, // December
  ];
  return days[month];
}
function daysInYear(year) {
  return 365 + (isLeapYear(year) ? 1 : 0);
}
function isLeapYear(year) {
  return year % 4 === 0 && year % 100 !== 0 || year % 400 === 0;
}
console.log(dayOfTheWeek(15, 8, 1993));

ব্যাখ্যা

আমরা দিনের সংখ্যা গণনা করতে চাই যেন দেওয়া তারিখ পর্যন্ত পৌঁছানো যায়। এর জন্য আমরা ইউনিক্স টাইম ০ (বৃহস্পতিবার ১৯৭০-০১-০১) থেকে শুরু করতে পারি:

  • পুরো বছরের দিনগুলো গণনা করা

  • অपूर्ण বছরের মাসের দিন গণনা করা

  • অपूर्ण মাসের বাকি দিন গণনা করা

আউটপুট

কনসোলে আউটপুট হবে:

Sunday
  1. জাভাস্ক্রিপ্টে Date.getHours() ফাংশন

  2. জাভাস্ক্রিপ্টে Date.getUTCHours() ফাংশন

  3. জাভাস্ক্রিপ্টে ডেট অবজেক্টের দিন সেট করার পদ্ধতি

  4. জাভাস্ক্রিপ্টে ডেট ১ দিন কম করা