কম্পিউটার

একটি তারিখ বৈধ কি না তা পরীক্ষা করার জন্য সি প্রোগ্রাম


তারিখ বিন্যাসে তারিখ, মাস এবং বছর পূর্ণসংখ্যায় দেওয়া হয়েছে। কাজটি হল তারিখটি সম্ভব কিনা তা খুঁজে বের করা।

বৈধ তারিখ 1/1/1800 - 31/12/9999 এর পরের তারিখগুলি অবৈধ৷

এই তারিখগুলিতে শুধুমাত্র বছরের পরিসরই থাকবে না কিন্তু একটি ক্যালেন্ডার তারিখের সাথে সম্পর্কিত সমস্ত সীমাবদ্ধতাও থাকবে৷

সীমাবদ্ধতা হল −

  • তারিখ 1 এর কম এবং 31 এর বেশি হতে পারে না
  • মাস 1 এর কম এবং 12 এর বেশি হতে পারে না
  • বছর 1800 এর কম এবং 9999 এর বেশি হতে পারে না
  • এপ্রিল, জুন, সেপ্টেম্বর, নভেম্বর মাস হলে তারিখ ৩০ এর বেশি হতে পারে না।
  • ফেব্রুয়ারি মাস হলে আমাদের পরীক্ষা করতে হবে,
    • যদি বছরটি অধিবর্ষ হয় তাহলে দিনের সংখ্যা 29-এর বেশি হতে পারে না
    • অন্যথায় দিনের সংখ্যা ২৮টির বেশি হতে পারে না।

যদি সমস্ত সীমাবদ্ধতা সত্য হয় তবে এটি একটি বৈধ তারিখ, অন্যথায় এটি নয়৷

উদাহরণ

Input: y = 2002
   d = 29
   m = 11
Output: Date is valid
Input: y = 2001
   d = 29
   m = 2
Output: Date is not valid

অ্যালগরিদম

START
In function int isleap(int y)
   Step 1-> If (y % 4 == 0) && (y % 100 != 0) && (y % 400 == 0) then,
      Return 1
   Step 2-> Else
      Return 0
In function int datevalid(int d, int m, int y)
   Step 1-> If y < min_yr || y > max_yr then,
      Return 0
   Step 2-> If m < 1 || m > 12 then,
      Return 0
   Step 3-> If d < 1 || d > 31 then,
      Return 0
   Step 4-> If m == 2 then,
      If isleap(y) then,
         If d <= 29 then,
            Return 1
         Else
            Return 0
         End if
      End if
   Step 5-> If m == 4 || m == 6 || m == 9 || m == 11 then,
      If(d <= 30)
         Return 1
      Else
         Return 0
         Return 1
      End Function
In main(int argc, char const *argv[])
   Step 1->Assign and initialize values as y = 2002, d = 29, m = 11
   Step 2-> If datevalid(d, m, y) then,
      Print "Date is valid"
   Step 3-> Else
      Print "date is not valid”
   End main
STOP

উদাহরণ

#include <stdio.h>
#define max_yr 9999
#define min_yr 1800
//to check the year is leap or not
//if the year is a leap year return 1
int isleap(int y) {
   if((y % 4 == 0) && (y % 100 != 0) && (y % 400 == 0))
      return 1;
   else
      return 0;
}
//Function to check the date is valid or not
int datevalid(int d, int m, int y) {
   if(y < min_yr || y > max_yr)
      return 0;
   if(m < 1 || m > 12)
      return 0;
   if(d < 1 || d > 31)
      return 0;
      //Now we will check date according to month
   if( m == 2 ) {
      if(isleap(y)) {
         if(d <= 29)
            return 1;
         else
            return 0;
         }
      }
      //April, June, September and November are with 30 days
      if ( m == 4 || m == 6 || m == 9 || m == 11 )
         if(d <= 30)
            return 1;
         else
            return 0;
            return 1;
   }
int main(int argc, char const *argv[]) {
   int y = 2002;
   int d = 29;
   int m = 11;
      if(datevalid(d, m, y))
         printf("Date is valid\n");
      else
         printf("date is not valid\n");
      return 0;
}

আউটপুট

উপরের কোডটি চালালে এটি নিম্নলিখিত আউটপুট −

উৎপন্ন করবে
Date is valid

  1. জাভাস্ক্রিপ্টে বৈধ তারিখ বিন্যাস পরীক্ষা করুন?

  2. একটি অ্যারে প্যালিনড্রোম কিনা বা পুনরাবৃত্তি ব্যবহার করছে না তা পরীক্ষা করার জন্য সি প্রোগ্রাম

  3. দুটি স্ট্রিং একই কিনা তা পরীক্ষা করার জন্য সি প্রোগ্রাম

  4. একটি অ্যারে প্যালিনড্রোম কিনা তা পরীক্ষা করার জন্য সি প্রোগ্রাম