Please make a comment for all the codes
 Or explain this program code!!
 //Date.h
 
 #ifndef DateFormat
 
 #define DateFormat
 
 #include <string>
 
 using std::string;
 
 class Date {
 
 public:
 
 Date();
 
 Date( int, int );
 
 Date( int, int, int );
 
 Date( string, int, int );
 
 void setDay11(int);
 
 void setMonth11( int );
 
 void print11() const;
 
 void printDDDYYYY11( ) const;
 
 void printMMDDYY11( ) const;
 
 void printMonthDDYYYY11( ) const;
 
 ~Date();
 
 private:
 
 int month1;
 
 int day1;
 
 int year1;
 
 int checkDay(int)const;
 
 int daysInMonth(int)const;
 
 bool isLeapYear()const;
 
 int convertDDToDDD()const;
 
 void setMMDDFromDDD(int);
 
 string convertMMToMonth(int)const;
 
 void setMMFromMonth(string);
 
 int convertYYYYToYY()const;
 
 void setYYYYFromYY(int);
 
 };
 
 #endif
 
 
 //Main.cpp
  include<iostream>
 
 using std::cout;
 
 using std::endl;
 
 #include \"Date.h\"
 
 int main()
 
 {
 
 Date date1( 252,1999 );
 
 Date date2( 2,25,04 );
 
 Date date3( \"September\", 1, 2000 );
 
 Date date4;
 
 date1.print11();
 
 date2.print11();
 
 date3.print11();
 
 date4.print11();
 
 cout << \'\ \';
 
 date1.printDDDYYYY11();
 
 date2.printDDDYYYY11();
 
 date3.printDDDYYYY11();
 
 date4.printDDDYYYY11();
 
 cout << \'\ \';
 
 date1.printMMDDYY11();
 
 date2.printMMDDYY11();
 
 date3.printMMDDYY11();
 
 date4.printMMDDYY11();
 
 cout << endl;
 
 date1.printMonthDDYYYY11();
 
 date2.printMonthDDYYYY11();
 
 date3.printMonthDDYYYY11();
 
 date4.printMonthDDYYYY11();
 
 return 0;
 
 }
 
 
 //Date.cpp
 
 #include <iostream>
 
 using std::cout;
 
 using std::endl;
 
 #include<iomanip>
 
 using std::setw;
 
 using std::setfill;
 
  include <ctime>
 
 using std::time;
 
 using std::localtime;
 
 using std::tm;
 
 using std::time_t;
 
 #include \"Date.h\"
 
 Date::Date()
 
 {
 
 struct tm *ptr;
 
 time_t t1 = time( 0 );
 
 ptr = localtime( &t1 );
 
 day1 = ptr->tm_mday;
 
 month1 = 1 + ptr->tm_mon;
 
 year1 = ptr->tm_year + 1900;
 
 }
 
 Date::Date( int ddd1, int yyyy1 )
 
 {
 
 year1=yyyy1;
 
 setMMDDFromDDD(ddd1);
 
 }
 
 Date::Date( int mm1, int dd1, int yy1 )
 
 {
 
 setYYYYFromYY( yy1 );
      mm1 );
 
 setDay11( dd1 );
 
 }
 
 Date::Date(string monthName2,int dd1,int yyyy1)
 
 {
 
 setMMFromMonth(monthName2);
 
 setDay11(dd1);
 
 year1=yyyy1;
 
 }
 
 void Date::setDay11( int d1 )
 
 {
 
 day1 = checkDay(d1); }
 
 void Date::setMonth11( int m1 )
 
 {
 
 if(m1>0&& m1<=12)
 
 month1=m1;
 
 else
 
 {
 
 month1=1;
 
 cout<<\"invalid month(\"<<m1<<\")set tol\ \";
 
 }
 
 }
 
 void Date::print11()const
 
 {
 
  cout<<month1<<\"/\"<<day1<<\'/\'<<year1<<endl;
 
 }
 
 void Date::printDDDYYYY11()const
 
 {
 
 cout<<convertDDToDDD()<<\' \'<<year1<<endl;
 
 }
 
 void Date::printMMDDYY11()const
 
 {
 
  cout<<setw(2)<<setfill(\'0\')<<month1<<\'/\'<<setw(2)<<setfill(\'0\')<<day1<<setw(2)<<setfill(\'0\')<<convertYYYYToYY()<<endl;
 
 }
 
 void Date::printMonthDDYYYY11()const
 
 {
 
 cout<<convertMMToMonth(month1)<<\' \'<<day1<<\",\"<<year1<<endl;
    }
 
 Date::~Date()
 
 {
 
 cout<<\"date object destructor for date\";
 
 print11();
 
 cout<<endl;
 
 }
 
 int Date::checkDay(int testDay)const
 
 {
 
 if(testDay>0 && testDay<=daysInMonth(month1))
 
 return testDay;
 
 if(month1==2 && testDay==29 && isLeapYear())
 
 return testDay;
 
 cout<<\"invalid day(\"<<testDay<<\")set to 1\ \";
 
 return 1;
 
 }
 
 int Date::daysInMonth( int m ) const
 
 {
 
 if(isLeapYear()&&m==2)
 
 return 29;
 
 static const int daysPerMonth1[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
 
 return daysPerMonth1[m];
 
 }
 
 bool Date::isLeapYear()const
 
 {
 
 if ( year1 % 400 == 0 || ( year1 % 4 == 0 && year1 % 100 != 0 ) )
  return true;
 
 else
 
 return false;
 
 }
 
 
 
 int Date::convertDDToDDD() const
 
 {
 
 int ddd1 = 0;
 
 for(int i=1;i<month1;i++)
 
 ddd1+=daysInMonth(i);
 
 ddd1+=day1;
 
 return ddd1;
 
 }
 
 void Date::setMMDDFromDDD(int ddd1)
 
 {
 
 int dayTotal1=0;
 
 int m;
 
  for(m=1;m<=2&&(dayTotal1+daysInMonth(m))<ddd1;m++)
 
 dayTotal1+=daysInMonth(m);
 
 setMonth11(m);
 
 setDay11(ddd1-dayTotal1);
 
 }
 
 string Date::convertMMToMonth(int mm)const
      {
 
 static const string months1[]={\" \",\"January\",\"February\",\"March\",\"April\",\"May\",\"June\",\"July\",\"August\",\"September\",\"October\",\"November\",\"december\"};
 
 return months1[mm];
 
 }
 
 void Date::setMMFromMonth(string m1)
 
 {
 
 bool matchFound=false;
 
 for(int k=1;k<=12&&!matchFound;k++)
 
 {
 
 string tempMonth1=convertMMToMonth(k);
 
 if(tempMonth1==m1)
 
 {
 
 setMonth11(k);
 
 matchFound=true;
 
 }
 
 }
 
 if(!matchFound)
 
 {
 
 cout<<\"invalid month name(\"<<month1<<\")month set to 1\ \";
 
 setMonth11(1);
 
 }
 
 }
 
 int Date::convertYYYYToYY()const
 
 {
 
 return (year1>=2000?year1-2000:year1-1900);
 
 }
 
 void Date::setYYYYFromYY(int yy)
 
 {
 
 year1=(yy<7?yy+2000:yy+1900);
 
 }
      
 Please make a comment for all the codes
 Or explain this program code!!
 //Date.h
 
 #ifndef DateFormat
 
 #define DateFormat
 
 #include <string>
 
 using std::string;
 
 class Date {
 
 public:
 
 Date();
 
 Date( int, int );
 
 Date( int, int, int );
 
 Date( string, int, int );
 
 void setDay11(int);
 
 void setMonth11( int );
 
 void print11() const;
 
 void printDDDYYYY11( ) const;
 
 void printMMDDYY11( ) const;
 
 void printMonthDDYYYY11( ) const;
 
 ~Date();
 
 private:
 
 int month1;
 
 int day1;
 
 int year1;
 
 int checkDay(int)const;
 
 int daysInMonth(int)const;
 
 bool isLeapYear()const;
 
 int convertDDToDDD()const;
 
 void setMMDDFromDDD(int);
 
 string convertMMToMonth(int)const;
 
 void setMMFromMonth(string);
 
 int convertYYYYToYY()const;
 
 void setYYYYFromYY(int);
 
 };
 
 #endif
 
 
 //Main.cpp
  include<iostream>
 
 using std::cout;
 
 using std::endl;
 
 #include \"Date.h\"
 
 int main()
 
 {
 
 Date date1( 252,1999 );
 
 Date date2( 2,25,04 );
 
 Date date3( \"September\", 1, 2000 );
 
 Date date4;
 
 date1.print11();
 
 date2.print11();
 
 date3.print11();
 
 date4.print11();
 
 cout << \'\ \';
 
 date1.printDDDYYYY11();
 
 date2.printDDDYYYY11();
 
 date3.printDDDYYYY11();
 
 date4.printDDDYYYY11();
 
 cout << \'\ \';
 
 date1.printMMDDYY11();
 
 date2.printMMDDYY11();
 
 date3.printMMDDYY11();
 
 date4.printMMDDYY11();
 
 cout << endl;
 
 date1.printMonthDDYYYY11();
 
 date2.printMonthDDYYYY11();
 
 date3.printMonthDDYYYY11();
 
 date4.printMonthDDYYYY11();
 
 return 0;
 
 }
 
 
 //Date.cpp
 
 #include <iostream>
 
 using std::cout;
 
 using std::endl;
 
 #include<iomanip>
 
 using std::setw;
 
 using std::setfill;
 
  include <ctime>
 
 using std::time;
 
 using std::localtime;
 
 using std::tm;
 
 using std::time_t;
 
 #include \"Date.h\"
 
 Date::Date()
 
 {
 
 struct tm *ptr;
 
 time_t t1 = time( 0 );
 
 ptr = localtime( &t1 );
 
 day1 = ptr->tm_mday;
 
 month1 = 1 + ptr->tm_mon;
 
 year1 = ptr->tm_year + 1900;
 
 }
 
 Date::Date( int ddd1, int yyyy1 )
 
 {
 
 year1=yyyy1;
 
 setMMDDFromDDD(ddd1);
 
 }
 
 Date::Date( int mm1, int dd1, int yy1 )
 
 {
 
 setYYYYFromYY( yy1 );
      mm1 );
 
 setDay11( dd1 );
 
 }
 
 Date::Date(string monthName2,int dd1,int yyyy1)
 
 {
 
 setMMFromMonth(monthName2);
 
 setDay11(dd1);
 
 year1=yyyy1;
 
 }
 
 void Date::setDay11( int d1 )
 
 {
 
 day1 = checkDay(d1); }
 
 void Date::setMonth11( int m1 )
 
 {
 
 if(m1>0&& m1<=12)
 
 month1=m1;
 
 else
 
 {
 
 month1=1;
 
 cout<<\"invalid month(\"<<m1<<\")set tol\ \";
 
 }
 
 }
 
 void Date::print11()const
 
 {
 
  cout<<month1<<\"/\"<<day1<<\'/\'<<year1<<endl;
 
 }
 
 void Date::printDDDYYYY11()const
 
 {
 
 cout<<convertDDToDDD()<<\' \'<<year1<<endl;
 
 }
 
 void Date::printMMDDYY11()const
 
 {
 
  cout<<setw(2)<<setfill(\'0\')<<month1<<\'/\'<<setw(2)<<setfill(\'0\')<<day1<<setw(2)<<setfill(\'0\')<<convertYYYYToYY()<<endl;
 
 }
 
 void Date::printMonthDDYYYY11()const
 
 {
 
 cout<<convertMMToMonth(month1)<<\' \'<<day1<<\",\"<<year1<<endl;
    }
 
 Date::~Date()
 
 {
 
 cout<<\"date object destructor for date\";
 
 print11();
 
 cout<<endl;
 
 }
 
 int Date::checkDay(int testDay)const
 
 {
 
 if(testDay>0 && testDay<=daysInMonth(month1))
 
 return testDay;
 
 if(month1==2 && testDay==29 && isLeapYear())
 
 return testDay;
 
 cout<<\"invalid day(\"<<testDay<<\")set to 1\ \";
 
 return 1;
 
 }
 
 int Date::daysInMonth( int m ) const
 
 {
 
 if(isLeapYear()&&m==2)
 
 return 29;
 
 static const int daysPerMonth1[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
 
 return daysPerMonth1[m];
 
 }
 
 bool Date::isLeapYear()const
 
 {
 
 if ( year1 % 400 == 0 || ( year1 % 4 == 0 && year1 % 100 != 0 ) )
  return true;
 
 else
 
 return false;
 
 }
 
 
 
 int Date::convertDDToDDD() const
 
 {
 
 int ddd1 = 0;
 
 for(int i=1;i<month1;i++)
 
 ddd1+=daysInMonth(i);
 
 ddd1+=day1;
 
 return ddd1;
 
 }
 
 void Date::setMMDDFromDDD(int ddd1)
 
 {
 
 int dayTotal1=0;
 
 int m;
 
  for(m=1;m<=2&&(dayTotal1+daysInMonth(m))<ddd1;m++)
 
 dayTotal1+=daysInMonth(m);
 
 setMonth11(m);
 
 setDay11(ddd1-dayTotal1);
 
 }
 
 string Date::convertMMToMonth(int mm)const
      {
 
 static const string months1[]={\" \",\"January\",\"February\",\"March\",\"April\",\"May\",\"June\",\"July\",\"August\",\"September\",\"October\",\"November\",\"december\"};
 
 return months1[mm];
 
 }
 
 void Date::setMMFromMonth(string m1)
 
 {
 
 bool matchFound=false;
 
 for(int k=1;k<=12&&!matchFound;k++)
 
 {
 
 string tempMonth1=convertMMToMonth(k);
 
 if(tempMonth1==m1)
 
 {
 
 setMonth11(k);
 
 matchFound=true;
 
 }
 
 }
 
 if(!matchFound)
 
 {
 
 cout<<\"invalid month name(\"<<month1<<\")month set to 1\ \";
 
 setMonth11(1);
 
 }
 
 }
 
 int Date::convertYYYYToYY()const
 
 {
 
 return (year1>=2000?year1-2000:year1-1900);
 
 }
 
 void Date::setYYYYFromYY(int yy)
 
 {
 
 year1=(yy<7?yy+2000:yy+1900);
 
 }
     
 Please make a comment for all the codes
 Or explain this program code!!
 //Date.h
 
 #ifndef DateFormat
 
 #define DateFormat
 
 #include <string>
 
 using std::string;
 
 class Date {
 
 public:
 
 Date();
 
 Date( int, int );
 
 Date( int, int, int );
 
 Date( string, int, int );
 
 void setDay11(int);
 
 void setMonth11( int );
 
 void print11() const;
 
 void printDDDYYYY11( ) const;
 
 void printMMDDYY11( ) const;
 
 void printMonthDDYYYY11( ) const;
 
 ~Date();
 
 private:
 
 int month1;
 
 int day1;
 
 int year1;
 
 int checkDay(int)const;
 
 int daysInMonth(int)const;
 
 bool isLeapYear()const;
 
 int convertDDToDDD()const;
 
 void setMMDDFromDDD(int);
 
 string convertMMToMonth(int)const;
 
 void setMMFromMonth(string);
 
 int convertYYYYToYY()const;
 
 void setYYYYFromYY(int);
 
 };
 
 #endif
 
 
 //Main.cpp
  include<iostream>
 
 using std::cout;
 
 using std::endl;
 
 #include \"Date.h\"
 
 int main()
 
 {
 
 Date date1( 252,1999 );
 
 Date date2( 2,25,04 );
 
 Date date3( \"September\", 1, 2000 );
 
 Date date4;
 
 date1.print11();
 
 date2.print11();
 
 date3.print11();
 
 date4.print11();
 
 cout << \'\ \';
 
 date1.printDDDYYYY11();
 
 date2.printDDDYYYY11();
 
 date3.printDDDYYYY11();
 
 date4.printDDDYYYY11();
 
 cout << \'\ \';
 
 date1.printMMDDYY11();
 
 date2.printMMDDYY11();
 
 date3.printMMDDYY11();
 
 date4.printMMDDYY11();
 
 cout << endl;
 
 date1.printMonthDDYYYY11();
 
 date2.printMonthDDYYYY11();
 
 date3.printMonthDDYYYY11();
 
 date4.printMonthDDYYYY11();
 
 return 0;
 
 }
 
 
 //Date.cpp
 
 #include <iostream>
 
 using std::cout;
 
 using std::endl;
 
 #include<iomanip>
 
 using std::setw;
 
 using std::setfill;
 
  include <ctime>
 
 using std::time;
 
 using std::localtime;
 
 using std::tm;
 
 using std::time_t;
 
 #include \"Date.h\"
 
 Date::Date()
 
 {
 
 struct tm *ptr;
 
 time_t t1 = time( 0 );
 
 ptr = localtime( &t1 );
 
 day1 = ptr->tm_mday;
 
 month1 = 1 + ptr->tm_mon;
 
 year1 = ptr->tm_year + 1900;
 
 }
 
 Date::Date( int ddd1, int yyyy1 )
 
 {
 
 year1=yyyy1;
 
 setMMDDFromDDD(ddd1);
 
 }
 
 Date::Date( int mm1, int dd1, int yy1 )
 
 {
 
 setYYYYFromYY( yy1 );
     include<iostream>
 
 using std::cout;
 
 using std::endl;
 
 #include \"Date.h\"
 
 int main()
 
 {
 
 Date date1( 252,1999 );
 
 Date date2( 2,25,04 );
 
 Date date3( \"September\", 1, 2000 );
 
 Date date4;
 
 date1.print11();
 
 date2.print11();
 
 date3.print11();
 
 date4.print11();
 
 cout << \'\ \';
 
 date1.printDDDYYYY11();
 
 date2.printDDDYYYY11();
 
 date3.printDDDYYYY11();
 
 date4.printDDDYYYY11();
 
 cout << \'\ \';
 
 date1.printMMDDYY11();
 
 date2.printMMDDYY11();
 
 date3.printMMDDYY11();
 
 date4.printMMDDYY11();
 
 cout << endl;
 
 date1.printMonthDDYYYY11();
 
 date2.printMonthDDYYYY11();
 
 date3.printMonthDDYYYY11();
 
 date4.printMonthDDYYYY11();
 
 return 0;
 
 }
 
 
 //Date.cpp
 
 #include <iostream>
 
 using std::cout;
 
 using std::endl;
 
 #include<iomanip>
 
 using std::setw;
 
 using std::setfill;
 
  include <ctime>
 
 using std::time;
 
 using std::localtime;
 
 using std::tm;
 
 using std::time_t;
 
 #include \"Date.h\"
 
 Date::Date()
 
 {
 
 struct tm *ptr;
 
 time_t t1 = time( 0 );
 
 ptr = localtime( &t1 );
 
 day1 = ptr->tm_mday;
 
 month1 = 1 + ptr->tm_mon;
 
 year1 = ptr->tm_year + 1900;
 
 }
 
 Date::Date( int ddd1, int yyyy1 )
 
 {
 
 year1=yyyy1;
 
 setMMDDFromDDD(ddd1);
 
 }
 
 Date::Date( int mm1, int dd1, int yy1 )
 
 {
 
 setYYYYFromYY( yy1 );
   include <ctime>
 
 using std::time;
 
 using std::localtime;
 
 using std::tm;
 
 using std::time_t;
 
 #include \"Date.h\"
 
 Date::Date()
 
 {
 
 struct tm *ptr;
 
 time_t t1 = time( 0 );
 
 ptr = localtime( &t1 );
 
 day1 = ptr->tm_mday;
 
 month1 = 1 + ptr->tm_mon;
 
 year1 = ptr->tm_year + 1900;
 
 }
 
 Date::Date( int ddd1, int yyyy1 )
 
 {
 
 year1=yyyy1;
 
 setMMDDFromDDD(ddd1);
 
 }
 
 Date::Date( int mm1, int dd1, int yy1 )
 
 {
 
 setYYYYFromYY( yy1 );
  mm1 );
 
 setDay11( dd1 );
 
 }
 
 Date::Date(string monthName2,int dd1,int yyyy1)
 
 {
 
 setMMFromMonth(monthName2);
 
 setDay11(dd1);
 
 year1=yyyy1;
 
 }
 
 void Date::setDay11( int d1 )
 
 {
 
 day1 = checkDay(d1); }
 
 void Date::setMonth11( int m1 )
 
 {
 
 if(m1>0&& m1<=12)
 
 month1=m1;
 
 else
 
 {
 
 month1=1;
 
 cout<<\"invalid month(\"<<m1<<\")set tol\ \";
 
 }
 
 }
 
 void Date::print11()const
 
 {
 
  cout<<month1<<\"/\"<<day1<<\'/\'<<year1<<endl;
 
 }
 
 void Date::printDDDYYYY11()const
 
 {
 
 cout<<convertDDToDDD()<<\' \'<<year1<<endl;
 
 }
 
 void Date::printMMDDYY11()const
 
 {
 
  cout<<setw(2)<<setfill(\'0\')<<month1<<\'/\'<<setw(2)<<setfill(\'0\')<<day1<<setw(2)<<setfill(\'0\')<<convertYYYYToYY()<<endl;
 
 }
 
 void Date::printMonthDDYYYY11()const
 
 {
 
 cout<<convertMMToMonth(month1)<<\' \'<<day1<<\",\"<<year1<<endl;
   mm1 );
 
 setDay11( dd1 );
 
 }
 
 Date::Date(string monthName2,int dd1,int yyyy1)
 
 {
 
 setMMFromMonth(monthName2);
 
 setDay11(dd1);
 
 year1=yyyy1;
 
 }
 
 void Date::setDay11( int d1 )
 
 {
 
 day1 = checkDay(d1); }
 
 void Date::setMonth11( int m1 )
 
 {
 
 if(m1>0&& m1<=12)
 
 month1=m1;
 
 else
 
 {
 
 month1=1;
 
 cout<<\"invalid month(\"<<m1<<\")set tol\ \";
 
 }
 
 }
 
 void Date::print11()const
 
 {
 
  cout<<month1<<\"/\"<<day1<<\'/\'<<year1<<endl;
 
 }
 
 void Date::printDDDYYYY11()const
 
 {
 
 cout<<convertDDToDDD()<<\' \'<<year1<<endl;
 
 }
 
 void Date::printMMDDYY11()const
 
 {
 
  cout<<setw(2)<<setfill(\'0\')<<month1<<\'/\'<<setw(2)<<setfill(\'0\')<<day1<<setw(2)<<setfill(\'0\')<<convertYYYYToYY()<<endl;
 
 }
 
 void Date::printMonthDDYYYY11()const
 
 {
 
 cout<<convertMMToMonth(month1)<<\' \'<<day1<<\",\"<<year1<<endl;
  }
 
 Date::~Date()
 
 {
 
 cout<<\"date object destructor for date\";
 
 print11();
 
 cout<<endl;
 
 }
 
 int Date::checkDay(int testDay)const
 
 {
 
 if(testDay>0 && testDay<=daysInMonth(month1))
 
 return testDay;
 
 if(month1==2 && testDay==29 && isLeapYear())
 
 return testDay;
 
 cout<<\"invalid day(\"<<testDay<<\")set to 1\ \";
 
 return 1;
 
 }
 
 int Date::daysInMonth( int m ) const
 
 {
 
 if(isLeapYear()&&m==2)
 
 return 29;
 
 static const int daysPerMonth1[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
 
 return daysPerMonth1[m];
 
 }
 
 bool Date::isLeapYear()const
 
 {
 
 if ( year1 % 400 == 0 || ( year1 % 4 == 0 && year1 % 100 != 0 ) )
  return true;
 
 else
 
 return false;
 
 }
 
 
 
 int Date::convertDDToDDD() const
 
 {
 
 int ddd1 = 0;
 
 for(int i=1;i<month1;i++)
 
 ddd1+=daysInMonth(i);
 
 ddd1+=day1;
 
 return ddd1;
 
 }
 
 void Date::setMMDDFromDDD(int ddd1)
 
 {
 
 int dayTotal1=0;
 
 int m;
 
  for(m=1;m<=2&&(dayTotal1+daysInMonth(m))<ddd1;m++)
 
 dayTotal1+=daysInMonth(m);
 
 setMonth11(m);
 
 setDay11(ddd1-dayTotal1);
 
 }
 
 string Date::convertMMToMonth(int mm)const
     }
 
 Date::~Date()
 
 {
 
 cout<<\"date object destructor for date\";
 
 print11();
 
 cout<<endl;
 
 }
 
 int Date::checkDay(int testDay)const
 
 {
 
 if(testDay>0 && testDay<=daysInMonth(month1))
 
 return testDay;
 
 if(month1==2 && testDay==29 && isLeapYear())
 
 return testDay;
 
 cout<<\"invalid day(\"<<testDay<<\")set to 1\ \";
 
 return 1;
 
 }
 
 int Date::daysInMonth( int m ) const
 
 {
 
 if(isLeapYear()&&m==2)
 
 return 29;
 
 static const int daysPerMonth1[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
 
 return daysPerMonth1[m];
 
 }
 
 bool Date::isLeapYear()const
 
 {
 
 if ( year1 % 400 == 0 || ( year1 % 4 == 0 && year1 % 100 != 0 ) )
  return true;
 
 else
 
 return false;
 
 }
 
 
 
 int Date::convertDDToDDD() const
 
 {
 
 int ddd1 = 0;
 
 for(int i=1;i<month1;i++)
 
 ddd1+=daysInMonth(i);
 
 ddd1+=day1;
 
 return ddd1;
 
 }
 
 void Date::setMMDDFromDDD(int ddd1)
 
 {
 
 int dayTotal1=0;
 
 int m;
 
  for(m=1;m<=2&&(dayTotal1+daysInMonth(m))<ddd1;m++)
 
 dayTotal1+=daysInMonth(m);
 
 setMonth11(m);
 
 setDay11(ddd1-dayTotal1);
 
 }
 
 string Date::convertMMToMonth(int mm)const
   return true;
 
 else
 
 return false;
 
 }
 
 
 
 int Date::convertDDToDDD() const
 
 {
 
 int ddd1 = 0;
 
 for(int i=1;i<month1;i++)
 
 ddd1+=daysInMonth(i);
 
 ddd1+=day1;
 
 return ddd1;
 
 }
 
 void Date::setMMDDFromDDD(int ddd1)
 
 {
 
 int dayTotal1=0;
 
 int m;
 
  for(m=1;m<=2&&(dayTotal1+daysInMonth(m))<ddd1;m++)
 
 dayTotal1+=daysInMonth(m);
 
 setMonth11(m);
 
 setDay11(ddd1-dayTotal1);
 
 }
 
 string Date::convertMMToMonth(int mm)const
  {
 
 static const string months1[]={\" \",\"January\",\"February\",\"March\",\"April\",\"May\",\"June\",\"July\",\"August\",\"September\",\"October\",\"November\",\"december\"};
 
 return months1[mm];
 
 }
 
 void Date::setMMFromMonth(string m1)
 
 {
 
 bool matchFound=false;
 
 for(int k=1;k<=12&&!matchFound;k++)
 
 {
 
 string tempMonth1=convertMMToMonth(k);
 
 if(tempMonth1==m1)
 
 {
 
 setMonth11(k);
 
 matchFound=true;
 
 }
 
 }
 
 if(!matchFound)
 
 {
 
 cout<<\"invalid month name(\"<<month1<<\")month set to 1\ \";
 
 setMonth11(1);
 
 }
 
 }
 
 int Date::convertYYYYToYY()const
 
 {
 
 return (year1>=2000?year1-2000:year1-1900);
 
 }
 
 void Date::setYYYYFromYY(int yy)
 
 {
 
 year1=(yy<7?yy+2000:yy+1900);
 
 }
   {
 
 static const string months1[]={\" \",\"January\",\"February\",\"March\",\"April\",\"May\",\"June\",\"July\",\"August\",\"September\",\"October\",\"November\",\"december\"};
 
 return months1[mm];
 
 }
 
 void Date::setMMFromMonth(string m1)
 
 {
 
 bool matchFound=false;
 
 for(int k=1;k<=12&&!matchFound;k++)
 
 {
 
 string tempMonth1=convertMMToMonth(k);
 
 if(tempMonth1==m1)
 
 {
 
 setMonth11(k);
 
 matchFound=true;
 
 }
 
 }
 
 if(!matchFound)
 
 {
 
 cout<<\"invalid month name(\"<<month1<<\")month set to 1\ \";
 
 setMonth11(1);
 
 }
 
 }
 
 int Date::convertYYYYToYY()const
 
 {
 
 return (year1>=2000?year1-2000:year1-1900);
 
 }
 
 void Date::setYYYYFromYY(int yy)
 
 {
 
 year1=(yy<7?yy+2000:yy+1900);
 
 }
//Date.h
 #ifndef DateFormat
 #define DateFormat
 #include <string>
 using std::string;
 class Date {
    public:
    // constructor
    Date();
    // parameterized consturctors
    Date( int, int );
    Date( int, int, int );
    Date( string, int, int );
    // setters
    void setDay11(int);
    void setMonth11( int );
    // print functions
    void print11() const;
    void printDDDYYYY11( ) const;
    void printMMDDYY11( ) const;
    void printMonthDDYYYY11( ) const;
    ~Date();
    private:
    // variables
    int month1;
    int day1;
    int year1;
    // check valid day
    int checkDay(int)const;
    // count days in month
    int daysInMonth(int)const;
    // check leap year
    bool isLeapYear()const;
    // converter function
    int convertDDToDDD()const;
    // setter
    void setMMDDFromDDD(int);
    // converter function
    string convertMMToMonth(int)const;
    // setter
    void setMMFromMonth(string);
    // converter function
    int convertYYYYToYY()const;
    // setter
    void setYYYYFromYY(int);
 };
 #endif
 //Date.cpp
 // input output library
 #include <iostream>
 using std::cout;
 using std::endl;
 // library to set width and fill
 #include <iomanip>
 using std::setw;
 using std::setfill;
 // library to use time
 #include <ctime>
 using std::time;
 using std::localtime;
 using std::tm;
 using std::time_t;
 #include \"Date.h\"
 // default constructor
 Date::Date()
 {
     // taking pointer to tm
     struct tm *ptr;
     // set time as 0
     time_t t1 = time( 0 );
     // pointer taking address of t1
     ptr = localtime( &t1 );
     // day1 holds the day value of ptr
     day1 = ptr->tm_mday;
     // month1 holds the month value of ptr
     month1 = 1 + ptr->tm_mon;
     // year1 holds the year value of ptr + 1900
     year1 = ptr->tm_year + 1900;
 }
 // parameterized constructor
 Date::Date( int ddd1, int yyyy1 )
 {
     // set year
     year1=yyyy1;
     // call the month from date function
     setMMDDFromDDD(ddd1);
 }
 // parameterized constructor
 Date::Date( int mm1, int dd1, int yy1 )
 {
 // call the year from year function
 setYYYYFromYY( yy1 );
 // set day function
 setDay11( dd1 );
 }
 // parameterized constructor
 Date::Date(string monthName2,int dd1,int yyyy1)
 {
 // call the month from month function
 setMMFromMonth(monthName2);
 // setday
 setDay11(dd1);
 year1=yyyy1;
 }
 void Date::setDay11( int d1 )
 {
     // check for valid day and set it
     day1 = checkDay(d1);
 }
 void Date::setMonth11( int m1 )
 {
     // check for valid month and set it
     if(m1>0&& m1<=12)
         month1=m1;
     else
     {
         // end set month to 1
         month1=1;
         cout<<\"invalid month(\"<<m1<<\")set to 1\ \";
     }
 }
 // print function
 void Date::print11()const
 {
     cout<<month1<<\"/\"<<day1<<\'/\'<<year1<<endl;
  }
 void Date::printDDDYYYY11()const
 {
     cout<<convertDDToDDD()<<\' \'<<year1<<endl;
 }
 void Date::printMMDDYY11()const
 {
     // print in specific format, 2 width, fill 0
     cout<<setw(2)<<setfill(\'0\')<<month1<<\'/\'<<setw(2)<<setfill(\'0\')<<day1<<setw(2)<<setfill(\'0\')<<convertYYYYToYY()<<endl;
  }
 void Date::printMonthDDYYYY11()const
 {
     cout<<convertMMToMonth(month1)<<\' \'<<day1<<\",\"<<year1<<endl;
 }
 // date destructor
 Date::~Date()
 {
     cout<<\"date object destructor for date\";
     print11();
     cout<<endl;
 }
 // check if day is valid
 int Date::checkDay(int testDay)const
 {
     if(testDay>0 && testDay<=daysInMonth(month1))
         return testDay;
     if(month1==2 && testDay==29 && isLeapYear())
         return testDay;
     cout<<\"invalid day(\"<<testDay<<\")set to 1\ \";
     return 1;
 }
 // count and return number of days in month
 int Date::daysInMonth( int m ) const
 {
     if(isLeapYear()&&m==2)
     return 29;
     static const int daysPerMonth1[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
     return daysPerMonth1[m];
 }
 // check for leap year
 bool Date::isLeapYear()const
 {
     if ( year1 % 400 == 0 || ( year1 % 4 == 0 && year1 % 100 != 0 ) )
         return true;
     else
         return false;
 }
 // date converter function
 int Date::convertDDToDDD() const
 {
     int ddd1 = 0;
     for(int i=1;i<month1;i++)
     ddd1+=daysInMonth(i);
     ddd1+=day1;
     return ddd1;
 }
 // setting month day from day
 void Date::setMMDDFromDDD(int ddd1)
 {
     int dayTotal1=0;
     int m;
     // iterate months and check if total days plus month days is less than ddd1
     for(m=1;m<=2&&(dayTotal1+daysInMonth(m))<ddd1;m++)
      dayTotal1+=daysInMonth(m);
     // set month
     setMonth11(m);
     // set day
     setDay11(ddd1-dayTotal1);
 }
 // convert given month number to corresponding month name
 string Date::convertMMToMonth(int mm)const
 {
     static const string months1[]={\" \",\"January\",\"February\",\"March\",\"April\",\"May\",\"June\",\"July\",\"August\",\"September\",\"October\",\"November\",\"december\"};
      return months1[mm];
 }
 // set month function
 void Date::setMMFromMonth(string m1)
 {
     bool matchFound=false;
     // check for month match
     for(int k=1;k<=12&&!matchFound;k++)
     {
     string tempMonth1=convertMMToMonth(k);
     if(tempMonth1==m1)
     {
         // set month if match is found
     setMonth11(k);
     matchFound=true;
     }
     }
     // else set month to 1
     if(!matchFound)
     {
     cout<<\"invalid month name(\"<<month1<<\")month set to 1\ \";
     setMonth11(1);
     }
 }
 // year converter
 int Date::convertYYYYToYY()const
 {
     return (year1>=2000?year1-2000:year1-1900);
 }
 // other yer converter function
 void Date::setYYYYFromYY(int yy)
 {
     year1=(yy<7?yy+2000:yy+1900);
 }
 
 //Main.cpp
 // input output library
 #include <iostream>
 using std::cout;
 using std::endl;
 #include \"Date.h\"
 int main()
 {
 // calling parameterized constructors
 Date date1( 252,1999 );
 Date date2( 2,25,04 );
 Date date3( \"September\", 1, 2000 );
 // print dates
 Date date4;
 date1.print11();
 date2.print11();
 date3.print11();
 date4.print11();
 // print date to years
 cout << \'\ \';
 date1.printDDDYYYY11();
 date2.printDDDYYYY11();
 date3.printDDDYYYY11();
 date4.printDDDYYYY11();
 // print month to date to years
 cout << \'\ \';
 date1.printMMDDYY11();
 date2.printMMDDYY11();
 date3.printMMDDYY11();
 date4.printMMDDYY11();
 // print final dates
 cout << endl;
 date1.printMonthDDYYYY11();
 date2.printMonthDDYYYY11();
 date3.printMonthDDYYYY11();
 date4.printMonthDDYYYY11();
 return 0;
 }
 
 /*
 output:
 invalid day(193)set to 1
 3/1/1999
 3/25/2004
 9/1/2000
 10/11/2016
 60 1999
 85 2004
 245 2000
 285 2016
 03/0199
 03/2504
 09/0100
 10/1116
 March 1,1999
 March 25,2004
 September 1,2000
 October 11,2016
 date object destructor for date10/11/2016
 date object destructor for date9/1/2000
 date object destructor for date3/25/2004
 date object destructor for date3/1/1999
 */