0

如何使用 C/C++ 代码检查今天是否是每月的第一个星期一?

使用 Java 和 C# 更简单(如下面的链接所示)。

任何人都可以帮助我使用 C/C++ 实现这一目标。

c-sharp-how-can-i-check-if-today-is-the-first-monday-of-the-month

java检查日期是否是本月的第一个星期日

4

3 回答 3

5

这应该是您正在寻找的:

#include <iostream>
#include <ctime>

int main(){
   std::time_t result = std::time(NULL);
   const std::tm* t =  std::localtime(&result);
   if(t->tm_wday == 1 and t->tm_mday <= 7)
    std::cout << "true" << std::endl;
    else
    std::cout << "false" << std::endl;
}

代码已经在这里测试过。

于 2013-07-10T09:34:42.293 回答
2

使用 boost.date_time gregorian。有一个功能day_clock::local_day()可以为您提供今天的日期。然后可以使用day()会员功能查询当月的星期几和day_of_week()会员,看看是不是星期一。其余的与您链接到的 C# 示例中的一样。

于 2013-07-10T09:29:07.307 回答
1

您可以使用time()localtime()来重试一个struct time *(让我们命名它tp)。那么今天是该月的第一个星期一当且仅当tp->tm_mday <= 7(它以 1 开头)和tp->tm_wday == 1(0 = 星期日等)

于 2013-07-10T09:34:46.253 回答