Object

Write a program to input a date and check whether it is valid or not.

Algorithm

  1. Declare integer variables d, m, y and leap.
  2. Read d, m and y.
  3. Set leap = y mod 4.
  4. IF (m<1 or m>12 or d<1 or y<0), then
    •   Write “Date is invalid”.
    •  Exit.
    • ELSE
      • IF ((m=2 or m=4 or m=6 or m=9 or m=11) and (d>30 or d<1)), then
      •  Write “Date is invalid”.
      •  Exit.
    •  ELSE IF (m=2 and (d > 28 or d<1) and leap>0), then
      •  Write “Date is invalid”.
      • Exit.
    • ELSE IF (m=2 and (d > 29 or d<1) and leap=0), then
      • Write “Date is invalid”.
      • Exit.
    • ELSE
      • Write “Date is valid”.
      •  [End of inner IF-ELSE structure.]
    • [End of outer IF-ELSE structure.]
  5. Exit.

Flowchart

C++ Source Code

// program 26
#include<iostream>
using namespace std;

int main()
{
  int d, m, y, leap;
  cout << "Enter the date (dd mm yyyy): ";
  cin >> d >> m >> y;

  leap = y % 4;
  if (m < 1 || m > 12 || d < 1 || y < 0)
  {
    cout << "The date " << d << "/" << m << "/" << y << " is invalid.";
    exit(1);
  }
  else
  {
    if ((m == 2 || m == 4 || m == 6 || m == 9 || m == 11) && (d > 30 || d < 1))
    {
      cout << "The date " << d << "/" << m << "/" << y << " is invalid.";
      exit(1);
    }
    else if (m == 2 && (d > 28 || d < 1) && leap > 0)
    {
      cout << "The date " << d << "/" << m << "/" << y << " is invalid.";
      exit(1);
    }
    else if (m == 2 && (d > 29 || d < 1) && leap == 0)
    {
      cout << "The date " << d << "/" << m << "/" << y << " is invalid.";
      exit(1);
    }
    else
    {
      cout << "The date " << d << "/" << m << "/" << y << " is valid.";
    }
  }
  return 0;
}

C Source Code

/*program 26*/
#include <stdio.h>
#include <stdlib.h>

int main() 
{
  int d, m, y, leap;
  printf("Enter the date (dd mm yyyy): ");
  scanf("%d %d %d", &d, &m, &y);

  leap = y % 4;
  if (m < 1 || m > 12 || d < 1 || y < 0) 
  {
    printf("The date %d/%d/%d is invalid.\n", d, m, y);
    exit(1);
  } 
  else 
  {
    if ((m == 2 || m == 4 || m == 6 || m == 9 || m == 11) && (d > 30 || d < 1)) 
	{
      printf("The date %d/%d/%d is invalid.\n", d, m, y);
      exit(1);
    } 
	else if (m == 2 && (d > 28 || d < 1) && leap > 0) 
	{
      printf("The date %d/%d/%d is invalid.\n", d, m, y);
      exit(1);
    } 
	else if (m == 2 && (d > 29 || d < 1) && leap == 0) 
	{
      printf("The date %d/%d/%d is invalid.\n", d, m, y);
      exit(1);
    } 
	else 
	{
      printf("The date %d/%d/%d is valid.\n", d, m, y);
    }
  }
  return 0;
}

Output

Enter the date (dd mm yyyy): 29 2 2002
The date 29/2/2002 is invalid.

Design a site like this with WordPress.com
Get started