Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> सी प्रोग्रामिंग

सी प्रोग्राम यह जांचने के लिए कि कोई तारीख वैध है या नहीं

प्रारूप में दिनांक दिनांक, माह और वर्ष पूर्णांक में दिया गया है। कार्य यह पता लगाना है कि क्या तिथि संभव नहीं है।

मान्य तिथि 1/1/1800 - 31/12/9999 के बीच होनी चाहिए, इससे आगे की तिथियां अमान्य हैं।

इन तिथियों में न केवल वर्ष की सीमा होगी बल्कि कैलेंडर तिथि से संबंधित सभी बाधाएं भी शामिल होंगी।

बाधाएं हैं -

  • तारीख 1 से कम और 31 से ज़्यादा नहीं हो सकती
  • माह 1 से कम और 12 से ज़्यादा नहीं हो सकता
  • वर्ष 1800 से कम और 9999 से अधिक नहीं हो सकता
  • जब महीने अप्रैल, जून, सितंबर, नवंबर हों तो तारीख 30 से अधिक नहीं हो सकती।
  • फरवरी का महीना होने पर हमें जांचना है कि,
    • यदि वर्ष लीप वर्ष है तो दिनों की संख्या 29 से अधिक नहीं हो सकती
    • अन्यथा दिनों की संख्या 28 से अधिक नहीं हो सकती।

यदि सभी बाधाएं सत्य हैं तो यह एक वैध तिथि है, अन्यथा यह नहीं है।

उदाहरण

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. जावास्क्रिप्ट में मान्य दिनांक स्वरूप की जाँच करें?

    वैध तिथि प्रारूप की जांच करने के लिए, तिथि का मिलान − . से करें const dateFormat = /^\d{4}\-\d{2}\-\d{2}$/; उदाहरण <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial

  1. सी प्रोग्राम यह जांचने के लिए कि कोई सरणी पैलिंड्रोम है या रिकर्सन का उपयोग नहीं कर रही है

    एक सरणी गिरफ्तारी [एन] को देखते हुए जहां एन एक सरणी का कुछ आकार है, कार्य यह पता लगाना है कि सरणी पालिंड्रोम है या रिकर्सन का उपयोग नहीं कर रही है। पैलिंड्रोम एक अनुक्रम है जिसे पीछे और आगे की तरह पढ़ा जा सकता है, जैसे:मैडम, नमन, आदि। तो एक सरणी की जांच करने के लिए पैलिंड्रोम है या नहीं, इसलिए हम ए

  1. सी प्रोग्राम यह जांचने के लिए कि कोई ऐरे पालिंड्रोम है या नहीं

    किसी भी आकार n की arr [] सरणी को देखते हुए, हमारा कार्य यह पता लगाना है कि सरणी पैलिंड्रोम है या नहीं। पैलिंड्रोम एक अनुक्रम है जिसे पीछे और आगे की तरह पढ़ा जा सकता है, जैसे:मैडम, नमन, आदि। तो एक सरणी की जांच करने के लिए पैलिंड्रोम है या नहीं, इसलिए हम एक सरणी को पीछे और आगे से पार कर सकते हैं जैसे