gpt4 book ai didi

c - 在 DOS 中为 "Daylight Savings Time"

转载 作者:太空宇宙 更新时间:2023-11-04 00:08:43 24 4
gpt4 key购买 nike

我在 C 应用程序中使用 time(NULL) 函数来获取自 1970 年以来的秒数。我注意到它返回的信息有 1 小时的差异。

然后我尝试使用 localtime 将结果转换为 tm 结构,然后我注意到正在设置 tm_isdst 字段。

代码是这样的:

time_t tempo;
struct tm sttime;

memset( &sttime, 0, sizeof( sttime ) );

tempo = time( NULL );

printf( "%d\n", tempo );

sttime = *( localtime( &tempo ) );
sttime.tm_isdst = 0;
tempo = mktime( &sttime );

printf( "%d\n", tempo );

在第一个 printf 中,tempo 以一小时的差异打印。第二,它正在打印正确的值。

我正在 Ms DOS 6.0 操作系统中运行该应用程序,并且正在使用 Watcom v1.3 编译该应用程序。

夏令时 信息来自哪里? DOS 是否保存此信息?

最佳答案

通过清除 sttime.tm_isdst 你告诉 mktime 它比实际时间晚了一个小时(如果你在夏令时,这似乎是你是因为你说 sttime.tm_isdst 已设置)。

关于c - 在 DOS 中为 "Daylight Savings Time",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12184836/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com