Search This Blog

Monday, May 9, 2011

C++ Day of the Year Program


Day of the Year

Assuming that a year has 365 days, write a class named DayOfYear that takes an integer representing a day of the year and translates it to a string consisting of the month followed by day of the month. For example,

Day 2 would be January 2
Day 32 would be February 1
Day 365 would be December 31

The constructor for the class should take as parameter an integer representing the day of the year, and the class should have a member function print() that prints the day in the month-day format. The class should have an integer member variable to represent the day, and should have static member variables of type string to assist in the translation from the integer format to the month-day format.

Test your class by inputting various integers representing days and printing out their representation in the month-day format. 

Here is the output (depending on the integer written in the code): (Click to enlarge)
// Kim Pestana, C++, Chapt. 11
// Day of the Year

// Assuming that a year has 365 days, write a class named DayOfYear that takes an integer
// representing a day of the year and translates it to a string consisting
// of the month followed by day of the month. For example,
// Day 2 would be January 2
// Day 32 would be February 1
// Day 365 would be December 31
// The constructor for the class should take as parameter an integer representing
// the day of the year, and the class should have a member function print()
// that prints the day in the month-day format. The class should have an integer member
// variable to represent the day, and should have static member variables of type string
// to assist in the translation from the integer format to the month-day format.
// Test your class by inputting various integers representing days and printing out
// their representation in the month-day format.

#include<iostream>
#include<iomanip>
#include<cstring>
#include<string>

using namespace std;


// Class declaration
class DayOfYear
{
public:
       // Static member variable type string to translate from integer to month-day format
       int day;
       string Month;

       // Constructor function
       DayOfYear(int dayEntered)
       {
             day = dayEntered;
             //cout << "Please enter a number from 1 to 365" << endl;
             //cin >> dayEntered;
              
       } // end constructor function

       void print()
       {
            
                    if(day >= 1 && day <= 31)
                    {
                           cout << "January " << day << endl;
                    }
      
                    if(day >= 32 && day <= 59)
                    {
                           cout << "February " << (day - 31) << endl;
                    }

                    if(day >= 60 && day <= 90)
                    {
                           cout << "March " << (day - 59)  << endl;
                    }

                    if(day >= 91 && day <= 120)
                    {
                           cout << "April " << (day - 90)  << endl;
                    }

                    if(day >= 121 && day <= 151)
                    {
                           cout << "May " << (day - 120)  << endl;
                    }

                    if(day >= 152 && day <= 181)
                    {
                           cout << "June " << (day - 151)  << endl;
                    }

                    if(day >= 182 && day <= 212)
                    {
                           cout << "July " << (day - 181)  << endl;
                    }

                    if(day >= 213 && day <= 243)
                    {
                           cout << "August " << (day - 212)  << endl;
                    }

                    if(day >= 244 && day <= 273)
                    {
                           cout << "September " << (day - 243)  << endl;
                    }

                    if(day >= 274 && day <= 304)
                    {
                           cout << "October " << (day - 273)  << endl;
                    }

                    if(day >= 305 && day <= 334)
                    {
                           cout << "November " << (day - 304)  << endl;
                    }

                    if(day >= 335 && day <= 365)
                    {
                           cout << "December " << (day - 334)  << endl;
                    }
            

       } // end print function

            
}; // end Class DayOfYear

 
int main()
{
       // choose a day to print
       DayOfYear d(78);
       // print day 78 in Month and Day format
       d.print();

       system("Pause");
       return 0;

}


2 comments:

  1. The issue i see with your code is, it print the day specifically stated in your code where you said "DayOfYear d(78);" It means it will only print that day in the year. How do you change it to make pick any day of the year a user wants?

    ReplyDelete
  2. That's a good question. Try going to Dream in Code and get your answer there. I am only a novice programmer and you got me on that one. Sales is really where my expertise is. Good Luck!

    ReplyDelete