Open In App
Related Articles

C program to print number of days in a month

Improve Article
Improve
Save Article
Save
Like Article
Like

Given a number N, the task is to find the number of days corresponding to each month where 1 is January, 2 is February, 3 is March, and so on.

Examples:

Input: N = 12
Output: 31 Days

Input: N = 2
Output: 28/29 Days

Method – 1: using If Else:

  1. Get the input month as a number N.
  2. If N is one of these value 1, 3, 5, 7, 8, 10, 12, then print “31 Days.”.
  3. If N is one of these value 4, 6, 9, 11, then print “30 Days.”.
  4. If N is 2, then print “28/29 Days.”.
  5. Else print “Invalid Month”.

Below is the implementation of the above approach:




// C program for the above approach
#include <stdio.h>
  
// Function to find the number of Days
// in month input by user
void printNumberOfDays(int N)
{
  
    // Check for 31 Days
    if (N == 1 || N == 3 || N == 5
        || N == 7 || N == 8 || N == 10
        || N == 12) {
        printf("31 Days.");
    }
  
    // Check for 30 Days
    else if (N == 4 || N == 6
             || N == 9 || N == 11) {
        printf("30 Days.");
    }
  
    // Check for 28/29 Days
    else if (N == 2) {
        printf("28/29 Days.");
    }
  
    // Else Invalid Input
    else {
        printf("Invalid Month.");
    }
}
  
// Driver Code
int main()
{
    // Input Month
    int N = 4;
  
    // Function Call
    printNumberOfDays(N);
  
    return 0;
}


Output:

30 Days.

Time Complexity: O(1)
Auxiliary Space: O(1)

Method – 2: using Switch Statements:

  1. Get the input month as a number N.
  2. Using switch statement when value of N is one of 1, 3, 5, 7, 8, 10, 12, then print “31 Days.” corresponding to switch case.
  3. If N is one of these value 4, 6, 9, 11, then print “30 Days.” corresponding to switch case.
  4. If N is 2, then print “28/29 Days.” corresponding to switch case.
  5. Else the default condition for the switch case will print “Invalid Month”.

Below is the implementation of the above approach:




// C program for the above approach
#include <stdio.h>
  
// Function to find the number of Days
// in month input by user usingwwww
// switch statement
void printNumberOfDays(int N)
{
  
    switch (N) {
    // Cases for 31 Days
    case 1:
    case 3:
    case 5:
    case 7:
    case 8:
    case 10:
    case 12:
        printf("31 Days.");
        break;
  
    // Cases for 30 Days
    case 4:
    case 6:
    case 9:
    case 11:
        printf("30 Days.");
        break;
  
    // Case for 28/29 Days
    case 2:
        printf("28/29 Days.");
        break;
  
    default:
        printf("Invalid Month.");
        break;
    }
}
  
// Driver Code
int main()
{
    // Input Month
    int N = 4;
  
    // Function Call
    printNumberOfDays(N);
  
    return 0;
}


Output:

30 Days.

Time Complexity: O(1)
Auxiliary Space: O(1)

Method – 3: using Arrays:

  1. Store the value of days corresponding to each month in an array as:

    arr[12] = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 }

  2. Print the corresponding day to each month from the above array.

Below is the implementation of the above approach:




// C program to find the number of days
// in a month using arrays
#include <stdio.h>
  
// Driver Code
int main()
{
    // Store the day in array arr[]
    int arr[12] = { 31, 28, 31, 30, 31, 30,
                    31, 31, 30, 31, 30, 31 };
  
    // Input Month
    int N = 4;
  
    // Print the number of days in
    // month 4
    printf("%d Days.", arr[N - 1]);
  
    return 0;
}


Output:

30 Days.

Time Complexity: O(1)
Auxiliary Space: O(1)

Method – 4: using Pointers:

  1. Store the value of days corresponding to each month in an array as:

    arr[12] = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 }

  2. Print the corresponding day to each month from the above array using pointers as:

    printf(“%d Days.”, *(arr + (*N – 1)))

Below is the implementation of the above approach:




// C program to find the number of days
// in a month using pointers
#include <stdio.h>
  
// Function to print number of Days
void printNumberOfDays(int* arr, int* N)
{
    // Print the number of days for Nth
    // month using *(arr+(*N - 1))
    printf("%d Days.", *(arr + (*N - 1)));
}
  
// Driver Code
int main()
{
    // Store the day in array arr[]
    int arr[12] = { 31, 28, 31, 30, 31, 30,
                    31, 31, 30, 31, 30, 31 };
  
    // Input Month
    int N = 4;
  
    // Print the number of days in
    // month 4
    printNumberOfDays(arr, &N);
  
    return 0;
}


Output:

30 Days.

Time Complexity: O(1)
Auxiliary Space: O(1)


Feeling lost in the world of random DSA topics, wasting time without progress? It's time for a change! Join our DSA course, where we'll guide you on an exciting journey to master DSA efficiently and on schedule.
Ready to dive in? Explore our Free Demo Content and join our DSA course, trusted by over 100,000 geeks!

Last Updated : 28 Jul, 2020
Like Article
Save Article
Previous
Next
Similar Reads
Complete Tutorials