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.

Respuesta :

Answer:

C++:

C++ Code:

#include <iostream>

#include <string>

using namespace std;

struct date

{

  int d,m,y;

};

int isLeap(int y)

{

  if(y%100==0)

  {

      if(y%400==0)

      return 1;

      return 0;

  }

  if(y%4==0)

  return 1;

  return 0;

}

int day_no(date D)

{

  int m = D.m;

  int y = D.y;

  int d = D.d;

  int i;

  int mn[13] = {0,31,28,31,30,31,30,31,31,30,31,30,31};

  for(i=0;i<m;i++)

  {

      d += mn[i];

  }

  if(isLeap(y))

  {

      if(m>2)

      d++;

  }

  return d;

}

date get_info(string s)

{

  date D;

  int i,p1,p2,l = s.length();

  for(i=0;i<l;i++)

  {

      if(s[i] == '-')

      {

      p1 = i;

      break ;

      }

  }

  for(i=p1+1;i<l;i++)

  {

      if(s[i] == '-')

      {

      p2 = i;

      break ;

      }

  }

 

  D.m = 0;

  for(i=0;i<p1;i++)

  D.m = (D.m)*10 + (s[i]-'0');

 

  D.d = 0;

  for(i=p1+1;i<p2;i++)

  D.d = (D.d)*10 + (s[i]-'0');

 

  D.y = 0;

  for(i=p2+1;i<l;i++)

  D.y = (D.y)*10 + (s[i]-'0');

 

  return D;

 

}

int main()

{

  string s1 = "4-5-2008";

  string s2 = "12-30-1995";

  string s3 = "6-21-2000";

  string s4 = "1-31-1500";

  string s5 = "7-19-1983";

  string s6 = "2-29-1976";

 

  cout<<"Date\t\tDay no\n\n";

  cout<<s1<<"\t"<<day_no(get_info(s1))<<endl;

  cout<<s2<<"\t"<<day_no(get_info(s2))<<endl;

  cout<<s3<<"\t"<<day_no(get_info(s3))<<endl;

  cout<<s4<<"\t"<<day_no(get_info(s4))<<endl;

  cout<<s5<<"\t"<<day_no(get_info(s5))<<endl;

  cout<<s6<<"\t"<<day_no(get_info(s6))<<endl;

 

 

  return 0;

}

Explanation:

The computer program that prints the day number of the year, given the date in the form month-day-year is; written below

How to write computer programs?

#include <iostream>

using namespace std;

bool isLeapYear(int year);

bool isLeapYear(int year)

{  

   if ((year  % 4 == 0) && (year % 100 != 0))

       ((year % 100 == 0) &&(year % 400 == 0));

   {

       cout << year << " is a leap year";

       return true;

}

   return false;

}

   int main ()

   {

       int day, month, year, dayNumber;

       char ch;

       cout << "\n\n\tEnter a date(mm-dd-yyyy) : ";

       cin >> month;

       cin >> ch;

       cin >> day;

       cin >> ch;

       cin >> year;

      dayNumber = 0;

       

       if ((month >= 1 && month <= 12) && (day >=1 && day <= 31))

       {

           while (month > 1 && month <= 12)

               {

                       switch (month - 1)

                       {

                           case 1:

                           case 3:

                           case 5:

                           case 7:

                           case 8:

                           case 10:

                           case 12:

                               dayNumber += 31;

                               break;

                           case 4:

                           case 6:

                           case 9:

                           case 11:

                               dayNumber += 30;

                               break;

                           case 2:

                               dayNumber += 28;

                               if (isLeapYear(year))

                                   dayNumber++;

                               break;

                       }

      month--;

        }

           }

           else {

               cout << "Enter Correct month or day";

               return 0;

           }

           dayNumber += day;

           cout << "\n\n\tThe day number is " << dayNumber;

           return 0;

       }

Read more about computer programming at; https://brainly.com/question/23275071

ACCESS MORE

Otras preguntas