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++;
}
返回日童子军;
}

您必须使用单独的变量来计算天数