C++ 使用**for循环**计算特定日期范围之间的天数?(c+;+;)
我发现的所有其他问题都是不同语言的,对于像我这样的初学者来说有点太复杂了 我的代码有什么问题,我无法获得两个输入日期之间的确切天数C++ 使用**for循环**计算特定日期范围之间的天数?(c+;+;),c++,for-loop,C++,For Loop,我发现的所有其他问题都是不同语言的,对于像我这样的初学者来说有点太复杂了 我的代码有什么问题,我无法获得两个输入日期之间的确切天数 int getDate() { std::cout << "Begins from: i.e 7th"; int dateStart; std::cin >> dateStart; std::cout << "Ends: i.e 22nd"; int dateStops; std:
int getDate()
{
std::cout << "Begins from: i.e 7th";
int dateStart;
std::cin >> dateStart;
std::cout << "Ends: i.e 22nd";
int dateStops;
std::cin >> dateStops;
int nrDays = dateStart;
for(nrDays; nrDays < dateStops; nrDays++)
{
}
return nrDays;
}
intgetdate()
{
std::cout>dateStart;
std::cout>dateStops;
int nrDays=日期开始;
用于(nrDays;nrDays<日期停止;nrDays++)
{
}
返回天数;
}
这是否可以使用for loop
我很抱歉问了一些愚蠢的问题。我刚开始学习C++,很多东西对我来说还是新的。
谢谢你的回答!:)
p、 还有,如果有人想提出一个如何排除周末的想法,那就太好了。尽管如此,我的直觉告诉我,它需要比我现在所能做的更多的编码。你的代码不应该编译,因为这行代码:
std::cin dateStart;
应该是:
std::cin >> dateStart;
其中的一部分,你的循环是无用的。显然,您希望nrDays
等于dateStop-1
:
int nrDays = dateStop - 1;
或者更准确地说:
int nrDays = std::max(dateStop - 1, dateStart);
这是:
dateStart
和dateStop-1
之间的最大值,您的代码不应编译,因为这一行:
std::cin dateStart;
应该是:
std::cin >> dateStart;
其中的一部分,你的循环是无用的。显然,您希望nrDays
等于dateStop-1
:
int nrDays = dateStop - 1;
或者更准确地说:
int nrDays = std::max(dateStop - 1, dateStart);
这是:
dateStart
和dateStop-1
之间的最大值,您的代码不应编译,因为这一行:
std::cin dateStart;
应该是:
std::cin >> dateStart;
其中的一部分,你的循环是无用的。显然,您希望nrDays
等于dateStop-1
:
int nrDays = dateStop - 1;
或者更准确地说:
int nrDays = std::max(dateStop - 1, dateStart);
这是:
dateStart
和dateStop-1
之间的最大值,您的代码不应编译,因为这一行:
std::cin dateStart;
应该是:
std::cin >> dateStart;
其中的一部分,你的循环是无用的。显然,您希望nrDays
等于dateStop-1
:
int nrDays = dateStop - 1;
或者更准确地说:
int nrDays = std::max(dateStop - 1, dateStart);
也就是说:
dateStart
和dateStop-1
之间的最大值循环的问题是假设迭代变量是一个计数器。这在许多循环中都是正确的,但在这里不是。变量nrDays
实际上根本不是天数,而是日期(它从dateStart
开始,然后转到dateStops
)。你真的想要这样的东西:
int nrDays = 0;
for( int date = dateStart; date < dateStops; date++)
{
if (isWeekday(date)) nrDays++;
}
return nrDays;
int nrDays=0;
对于(int date=dateStart;date
请注意,您无法从每月的某一天检测工作日。您需要知道月份和年份,或者以某种方式获得一周中的哪一天。循环的问题在于您假设迭代变量是计数器。这在许多循环中都是正确的,但在这里不是。变量
nrDays
实际上根本不是天数,而是日期(它从dateStart
开始,然后转到dateStops
)。你真的想要这样的东西:
int nrDays = 0;
for( int date = dateStart; date < dateStops; date++)
{
if (isWeekday(date)) nrDays++;
}
return nrDays;
int nrDays=0;
对于(int date=dateStart;date
请注意,您无法从每月的某一天检测工作日。您需要知道月份和年份,或者以某种方式获得一周中的哪一天。循环的问题在于您假设迭代变量是计数器。这在许多循环中都是正确的,但在这里不是。变量
nrDays
实际上根本不是天数,而是日期(它从dateStart
开始,然后转到dateStops
)。你真的想要这样的东西:
int nrDays = 0;
for( int date = dateStart; date < dateStops; date++)
{
if (isWeekday(date)) nrDays++;
}
return nrDays;
int nrDays=0;
对于(int date=dateStart;date
请注意,您无法从每月的某一天检测工作日。您需要知道月份和年份,或者以某种方式获得一周中的哪一天。循环的问题在于您假设迭代变量是计数器。这在许多循环中都是正确的,但在这里不是。变量
nrDays
实际上根本不是天数,而是日期(它从dateStart
开始,然后转到dateStops
)。你真的想要这样的东西:
int nrDays = 0;
for( int date = dateStart; date < dateStops; date++)
{
if (isWeekday(date)) nrDays++;
}
return nrDays;
int nrDays=0;
对于(int date=dateStart;date
请注意,您无法从每月的某一天检测工作日。您需要知道月份和年份,或者以其他方式获得一周中的哪一天。您必须使用单独的变量来计算天数 试试这个
int getDate()
{
std::cout << "Begins from: i.e 7th";
int dateStart;
std::cin >> dateStart;
std::cout << "Ends: i.e 22nd";
int dateStops;
std::cin >> dateStops;
int nrDays = dateStart;
int daysCount=0;
for(nrDays; nrDays < dateStops; nrDays++)
{
daysCount++;
}
return daysCount;
}
intgetdate()
{
std::cout>dateStart;
std::cout>dateStops;
int nrDays=日期开始;
int daysunt=0;
用于(nrDays;nrDays<日期停止;nrDays++)
{
daysunt++;
}
返回日童子军;
}
您必须使用单独的变量来计算天数
试试这个
int getDate()
{
std::cout << "Begins from: i.e 7th";
int dateStart;
std::cin >> dateStart;
std::cout << "Ends: i.e 22nd";
int dateStops;
std::cin >> dateStops;
int nrDays = dateStart;
int daysCount=0;
for(nrDays; nrDays < dateStops; nrDays++)
{
daysCount++;
}
return daysCount;
}
intgetdate()
{
std::cout>dateStart;
std::cout>dateStops;
int nrDays=日期开始;
int daysunt=0;
用于(nrDays;nrDays<日期停止;nrDays++)
{
daysunt++;
}
返回日童子军;
}
您必须使用单独的变量来计算天数
试试这个
int getDate()
{
std::cout << "Begins from: i.e 7th";
int dateStart;
std::cin >> dateStart;
std::cout << "Ends: i.e 22nd";
int dateStops;
std::cin >> dateStops;
int nrDays = dateStart;
int daysCount=0;
for(nrDays; nrDays < dateStops; nrDays++)
{
daysCount++;
}
return daysCount;
}
intgetdate()
{
std::cout>dateStart;
std::cout>dateStops;
int nrDays=日期开始;
int daysunt=0;
用于(nrDays;nrDays<日期停止;nrDays++)
{
daysunt++;
}
返回日童子军;
}
您必须使用单独的变量来计算天数