我正在努力解决这个问题。
- >创建一个计算一周中未来日期的程序。您的程序应输入两个项目:当前日期表示为字符串(例如“星期一”或“星期五”),以及计入未来的天数的整数。例如,星期一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;
}
答案 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]
}
访问阵列以打印日