C ++计算一周的未来日期

时间:2015-04-17 02:49:53

标签: c++ date

我正在努力解决这个问题。

- >创建一个计算一周中未来日期的程序。您的程序应输入两个项目:当前日期表示为字符串(例如“星期一”或“星期五”),以及计入未来的天数的整数。例如,星期一7将在周一给出输出(因为一周有七天!)星期三9将给出星期五的输出,星期六29将给出星期日的输出。不要像闰年那样假装偷偷摸摸!< -

到目前为止,我已经找到了输入天数的剩余部分,该天数应该是0到7,然后将该数字添加到当前工作日。星期一加7是星期一。

我正在努力的是编写所有内容。我在考虑使用if语句,但不确定。

如果当天=星期一且剩余时间为1,则未来日期为星期二,依此类推。

这一切都在我脑海中有意义,但我很难将其转换为c ++。

有人有什么建议吗? 我也建议使用数组但是我们还没有在课堂上学到这些,所以我认为我不应该使用它。

到目前为止我的内容如下:

// Riley
// Lab 3 Project 1
// Sources:
// This program will calculate a future day of the week.

#include <iostream>
#include <string>
using namespace std;

int main(){
// declare vars
string mon, tues, wed, thurs, fri, sat, sun;
string weekDay;
string futureDay;
int days = 0;
int remainder = 0;

// gather input
cout << "Please enter the current day and the number of days to count into the future: " << endl;
cin >> weekDay >> days;

// conpute
remainder = days % 8;

// print output
    cout << "The day of the week in " << days << " days is " << futureDay;

// pause and exit
getchar();
getchar();
return 0;

}

2 个答案:

答案 0 :(得分:0)

您希望number_to_day_of_week((days_in_future + day_of_week_to_number(day_of_week)) % 7)来自数字函数的星期几使用0到6。

所以你可以使用:

std::string number_to_day_of_week(int day_of_week)
{
    static const char *const names[7] =
    {
        "Sunday",
        "Monday",
        "Tuesday",
        "Wednesday",
        "Thursday",
        "Friday",
        "Saturday",
    };
    day_of_week %= 7;
    if(day_of_week < 0) // handle negative inputs
        day_of_week += 7;
    return names[day_of_week];
}

int day_of_week_to_number(std::string name)
{
    static const char *const names[7] =
    {
        "Sunday",
        "Monday",
        "Tuesday",
        "Wednesday",
        "Thursday",
        "Friday",
        "Saturday",
    };
    for(int i = 0; i < sizeof(names) / sizeof(names[0]); i++)
    {
        if(name == names[i])
            return i;
    }
    throw std::runtime_error("invalid day of week");
}

答案 1 :(得分:0)

你可以使用这样的东西

#include <iostream>
#include <string>

using namespace std; 
int main(void)
{         

string input = "Monday";                                              int daystoadd = 10;
int FUTUREDAY;
string Days[7]={"Sunday","Monday","Tuesday","Wednesday","Thursday",
"Friday","Saturday"}; 

for( int i = 0; i < Days.length ; i++){
 If(input.compare(Days[i]) == 0){
         FUTUREDAY = (i  + 1 + daystoadd) % 7;
     }
}
/// display out date 
Days[FUTUREDAY]
}

访问阵列以打印日