如何获取当前日期和时间?

26 浏览
0 Comments

如何获取当前日期和时间?

如何获取当前日期 d/m/y。我需要三个不同的变量,例如 day=d; month=m; year=y;

0
0 Comments

问题出现的原因是需要获取当前的日期和时间。解决方法是使用ctime库提供的功能。另外,可以查看stackoverflow上的一个帖子,根据平台的不同可能会有其他解决方法。

以下是一个示例代码,用于获取当前日期和时间:

#include 
#include 
using namespace std;
int main() {
    time_t t = time(0);   // 获取当前时间
    struct tm * now = localtime( &t );  // 转换为本地时间
    cout << (now->tm_year + 1900) << '-'  // 年份
         << (now->tm_mon + 1) << '-'       // 月份
         << now->tm_mday                    // 日期
         << endl;
}

感谢提问者。

0
0 Comments

代码中使用了C++0x中的chrono库来获取当前的日期和时间。首先,通过auto now = Clock::now();来获取当前的时间点。然后,通过std::time_t now_c = Clock::to_time_t(now);将时间点转换为std::time_t类型。接下来,使用std::localtime(&now_c);std::time_t类型的时间转换为struct tm结构体,以便可以获取具体的日期和时间信息。最后,通过parts->tm_yearparts->tm_monparts->tm_mday分别获取年份、月份和日期,并输出到控制台。

在代码中还提到了需要包含<ctime>头文件来使用std::time_t类型。并且在GCC 4.8版本下,<ctime>可以被<chrono>自动包含,所以不需要显式地包含<ctime>

通过以上代码可以获取当前的日期和时间信息。

0
0 Comments

问题的出现原因是因为需要获取当前的日期和时间信息。解决方法是使用C语言的localtime()函数来获取当前的日期和时间信息。具体的代码如下:

#include 
time_t theTime = time(NULL);
struct tm *aTime = localtime(&theTime);
int day = aTime->tm_mday;
int month = aTime->tm_mon + 1;
int year = aTime->tm_year + 1900;

在代码中,首先使用time()函数获取当前时间的时间戳theTime,然后使用localtime()函数将时间戳转换为本地时间的结构体tm。接着,通过访问结构体的成员变量tm_mdaytm_montm_year,分别获取当前的日期、月份和年份。需要注意的是,月份是从0到11表示的,所以需要将tm_mon加1来得到实际的月份值;年份是从1900年起计算的,所以需要将tm_year加上1900来得到实际的年份值。

另外,还有一个修正的建议是将localtime(&time(NULL))改为localtime(&theTime),因为直接使用time(NULL)作为参数传递给localtime()会导致编译错误。这是因为time(NULL)是一个右值,不能通过指针传递给localtime()函数,所以需要先将其存储在一个变量中,然后再传递给localtime()函数。

0