I am working on a class project and i need the day of year to be displayed as a number such as February 12 is 43 but my if else statement keeps going to the last "else" i created when i run the program so i guess it is not reading what i type in as an answer for the month and day
main.cpp
// Headers
#include <iostream>
#include <cstdlib>
#include <string>
#include"DayOfYear.h"
using namespace std;
int main()
{
// create an instance of a class
DayOfYear dayOfYearObj;
string month;
int day; // to hold the day
// display the purpose of the program
cout << "This program converts a string into a number representing what\n" <<
"number in the year the date falls on as well as the day before \nand after the date provided.\n";
// get the unout from the user
cout << "\nEnter in a month and a date: ";
cin >> month >> day;
dayOfYearObj;
// diplsy the object
dayOfYearObj.print("February", 12);
cout << endl;
system("PAUSE");
return 0;
}
DayOfYear.H
#pragma once
#include<iostream>
#include<string>
using namespace std;
class DayOfYear
{
private:
int day;
public:
static int daysAtEndOfMonth[];
static string monthName[];
DayOfYear();
void print(string, int);
void setDay(int day) { this->day = day; }
};
DyaOfYear.cpp
#include "DayOfYear.h"
int DayOfYear::daysAtEndOfMonth[] = { 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334, 365 };
string DayOfYear::monthName[] = { "January", "February", "March", "April", "May", "June", "July", "August", "September", "October",
"November", "December" };
DayOfYear::DayOfYear()
{
}
// dayofYear print convert and print day of year
void::DayOfYear::print(string name, int d)
{
int day = 0; //calculated value of date
if (name == "January")
{
setDay(d);
}
else if (name == "February")
{
day = daysAtEndOfMonth[0] + d;
setDay(d);
}
else if (name == "March")
{
day = daysAtEndOfMonth[1] + d;
setDay(d);
}
else if (name == "April")
{
day = daysAtEndOfMonth[2] + d;
setDay(d);
}
else if (name == "May")
{
day = daysAtEndOfMonth[3] + d;
setDay(d);
}
else if (name == "June")
{
day = daysAtEndOfMonth[4] + d;
setDay(d);
}
else if (name == "July")
{
day = daysAtEndOfMonth[5] + d;
setDay(d);
}
else if (name == "August")
{
day = daysAtEndOfMonth[6] + d;
setDay(d);
}
else if (name == "September")
{
day = daysAtEndOfMonth[7] + d;
setDay(d);
}
else if (name == "October")
{
day = daysAtEndOfMonth[8] + d;
setDay(d);
}
else if (name == "November")
{
day = daysAtEndOfMonth[9] + d;
setDay(d);
}
else if (name == "December")
{
day = daysAtEndOfMonth[10] + d;
setDay(d);
}
else
{
cout << "Number is out of range." << endl;
}
}
//int month = 0;
//while (daysAtEndOfMonth[month] < day)
// month = (month + 1) % 12;
//if (month == 0)
//cout << "January" << day << endl << endl;
//else
//{
// cout << endl << monthName[month] << " " << day - daysAtEndOfMonth[month - 1]
// << endl << endl;
//}
i have some code commented out not for use at the moment to convert the months and days into the number
Aucun commentaire:
Enregistrer un commentaire