C CODING Write a program that prints the day number of the y
C++ CODING!!!
Write a program that prints the day number of the year, given the date in the form month-day-year. For example, if the input is 1-1-2006, the day number is 1; if the input is 12-25-2006, the day number is 359. The program should check for a leap year. A year is a leap year if it is divisible by 4, but not divisible by 100. For example, 1992 and 2008 are divisible by 4, but not by 100. A year that is divisible by 100 is a leap year if it is also divisible by 400. For example, 1600 and 2000 are divisible by 400. However, 1800 is not a leap year because 1800 is not divisible by 400.
Solution
//code has been tested on gcc compiler
#include <iostream>
using namespace std;
int main()
 {
 int month,date,year; //variable for storing month,date and yesr
 int day_number; //variable for storing day number
   
   
 cout<<\"Enter the date in the format mm-dd-yyyy\" <<endl; //asking the user to enter in format mm-dd-yyyy,ex:1-1-2006
 cin>>month;
 cin.get();
 cin>>date;
 cin.get();
 cin>>year;
 
   
   
   
   
   
 if(year%4==0 && year%100 != 0) //checking the leap year condition
 {
 switch(month) //applying switch on month
 { case 1: //if month=1 ,i.e january
 day_number=date; //day number =date entered by yser
   
   
 break;
 case 2: //if month=2,i.e feburary
 day_number=31+date; //day number=total day in january + current date,i.e 31+date
 //follow the same logic in other months
 
 break;
 case 3:
 day_number=60+date;
 
 
 break;
 case 4:
 day_number=91+date;
   
 break;
 case 5:
 day_number=121+date;
 
 break;
 case 6:
 day_number=152+date;
 
 break;
 case 7:
 day_number=182+date;
   
 break;
 case 8:
 day_number=213+date;
 
 break;
 case 9:
 day_number=244+date;
   
 break;
 case 10:
 day_number=274+date;
   
 break;
 case 11:
 day_number=305+date;
   
 break;
 case 12:
 day_number=335+date;
   
 break;
 
 }
 }
 else if(year%100==0 && year%400 == 0) //checking leap year
 {
 switch(month)
 { case 1:
 day_number=date;
   
 break;
 case 2:
 day_number=31+date;
   
 break;
 case 3:
 day_number=60+date;
   
 break;
 case 4:
 day_number=91+date;
 
 break;
 case 5:
 day_number=121+date;
   
 break;
 case 6:
 day_number=152+date;
   
 break;
 case 7:
 day_number=182+date;
 
 break;
 case 8:
 day_number=213+date;
   
 break;
 case 9:
 day_number=244+date;
 
 break;
 case 10:
 day_number=274+date;
 
 break;
 case 11:
 day_number=305+date;
 
 break;
 case 12:
 day_number=335+date;
   
 break;
 
 }
 }
 else //if not a leap year
 {
 switch(month)
 {case 1:
 day_number=date;
 
 break;
 case 2:
 day_number=31+date;
 
 break;
 case 3:
 day_number=59+date;
 
 break;
 case 4:
 day_number=90+date;
   
 break;
 case 5:
 day_number=120+date;
 
 break;
 case 6:
 day_number=151+date;
 
 break;
 case 7:
 day_number=181+date;
 
 break;
 case 8:
 day_number=212+date;
 
 break;
 case 9:
 day_number=243+date;
 
 break;
 case 10:
 day_number=273+date;
   
 break;
 case 11:
 day_number=304+date;
   
 break;
 case 12:
 day_number=334+date;
 
 break;
 }
 }
 
 cout<<\"the day number is \"<<day_number<<endl; //print output
 return 0;
 }
 //end of code
 //core logic of the code:day=current date+no.of days in previous months
*********OUTPUT************
 sh-4.3$ g++ -std=c++11 -o main *.cpp
 sh-4.3$ main
Enter the date in the format mm-dd- yyyy
1-1- 2006
the day number is 1
Enter the date in the format mm-dd-yyyy
12-25-2006
the day number is 359
 the day number is 359
*********OUTPUT************
Please let me know in case of any doubt,Thanks.




