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

C प्रोग्राम: दी गई तारीख वैध है या नहीं जांचें

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

वैध तारीख की सीमा

वैध तारीख 1/1/1800 से 31/12/9999 के बीच होनी चाहिए; इससे बाहर की तारीखें अमान्य हैं।

ये सीमाएं केवल वर्ष की रेंज तक ही सीमित नहीं हैं, बल्कि कैलेंडर तारीख से संबंधित सभी प्रतिबंधों को भी शामिल करती हैं।

प्रतिबंध

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

यदि सभी प्रतिबंध पूरे होते हैं तो तारीख वैध है, अन्यथा नहीं।

उदाहरण

इनपुट: y = 2002, d = 29, m = 11  आउटपुट: Date is valid
इनपुट: y = 2001, d = 29, m = 2   आउटपुट: Date is not valid

एल्गोरिदम

START
फंक्शन int isleap(int y)
  स्टेप 1→ यदि (y % 4 == 0) && (y % 100 != 0) && (y % 400 == 0) तो 1 लौटाएं
  स्टेप 2→ अन्यथा 0 लौटाएं
फंक्शन int datevalid(int d, int m, int y)
  स्टेप 1→ यदि y < min_yr || y > max_yr तो 0 लौटाएं
  स्टेप 2→ यदि m < 1 || m > 12 तो 0 लौटाएं
  स्टेप 3→ यदि d < 1 || d > 31 तो 0 लौटाएं
  स्टेप 4→ यदि m == 2 तो
           यदि isleap(y) तो
               यदि d <= 29 तो 1 लौटाएं अन्यथा 0 लौटाएं
  स्टेप 5→ यदि m == 4 || m == 6 || m == 9 || m == 11 तो
           यदि d <= 30 तो 1 लौटाएं अन्यथा 0 लौटाएं
  अंत में 1 लौटाएं
END

C कोड उदाहरण

#include <stdio.h>
#define max_yr 9999
#define min_yr 1800

int isleap(int y) {
    if((y % 4 == 0) && (y % 100 != 0) && (y % 400 == 0))
        return 1;
    else
        return 0;
}

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;
    if(m == 2) {
        if(isleap(y)) {
            if(d <= 29) return 1;
            else return 0;
        }
    }
    if(m == 4 || m == 6 || m == 9 || m == 11) {
        if(d <= 30) return 1;
        else return 0;
    }
    return 1;
}

int main() {
    int y = 2002, d = 29, 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}$/;उदाहरण  Document .check-valid-date { border: 1px solid red; } const dateFormat = /^\d{4}\-\d{2}\-\d{2}$/; document.getElementById(check-valid-date).addEventListener(change, checkingForVal

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

    पैलिंड्रोम सरणी एक सरणी पैलिंड्रोम होती है यदि यह आगे और पीछे से समान पढ़ी जाए। उदाहरण: {1, 2, 3, 2, 1} ✓, {1, 0, 0, 1} ✓, {1, 2, 3, 4} ✗ रिकर्सिव दृष्टिकोण आधार मामला: यदि = end → पैलिंड्रोम (true) जांच: यदि arr[start] != arr[end] → पैलिंड्रोम नहीं (false) रिकर्सन: start+1 और end-1 के साथ कॉल करे

  1. C प्रोग्राम: जांचें कि सरणी पैलिंड्रोम है या नहीं (पुनरावृत्तीय) C प्रोग्राम: जांचें कि सरणी पैलिंड्रोम है या नहीं (पुनरावृत्तीय)

    पैलिंड्रोम सरणी एक सरणी पैलिंड्रोम है यदि यह आगे और पीछे से समान पढ़ी जाती है। उदाहरण सरणीपैलिंड्रोम? {1, 0, 0, 1}हाँ {1, 2, 3, 4, 5}नहीं {7}हाँ (एकल तत्व) {}हाँ (खाली) {1, 2, 2, 1}हाँ {1, 2, 3, 2, 1}हाँ पुनरावृत्तीय एल्गोरिदम दो पॉइंटर्स: start = 0, end = n-1 जब तक start < end: यदि ar