gpt4 book ai didi

将 time_t 转换为整数

转载 作者:行者123 更新时间:2023-12-02 01:57:00 31 4
gpt4 key购买 nike

我应该如何修改此代码以在每 00:00AM 打印(“Its Midnight”)?

#include <time.h>
#include <stdio.h>

int main(void)
{
struct tm * localtime ( const time_t * ptr_time );
struct tm
{
int tm_sec; /* segundos, range 0 to 59 */
int tm_min; /* minutos, range 0 to 59 */
int tm_hour; /* horas, range 0 to 23 */
int tm_mday; /* dia do mes, range 1 to 31 */
int tm_mon; /* mes, range 0 to 11 */
int tm_year; /* numero de anos desde 1900 */
int tm_wday; /* dia da semana, range 0 to 6 */
int tm_yday; /* dia no ano, range 0 to 365 */
int tm_isdst;
};
time_t mytime;
mytime = time(NULL);
printf(ctime(&mytime));
/*
if(str_time.tm_hour == 00 && str_time.tm_min == 00 && str_time.tm_sec == 00 )
{
printf("Its midnight");
}
*/
return 0;
}

time_t 的输出是:
Www Mmm dd hh:mm:ss yyyy

例子:
2009 年 2 月 26 日星期二 09:01:47

最佳答案

如果可以,请使用 sleep()暂停。
使用 time()localtime()来确定午睡时间。

#include <unistd.h>
#include <time.h>
#include <stdio.h>

int main() {
while (1) {
time_t Now;
if (time(&Now) == -1) {
return -1;
}
struct tm tm;
tm = *localtime(&Now);
tm.tm_mday++;
tm.tm_hour = 0;
tm.tm_min = 0;
tm.tm_sec = 0;
tm.tm_isdst = -1;
time_t Then;
Then = mktime(&tm);
if (Then == -1) {
return -1;
}
if (Then <= Now) {
return -1; // Time moving backwards - Hmmmm?
}
unsigned int NapTime = (unsigned int) (Then - Now);
printf("Going to sleep %u\n", NapTime );
fflush(stdout); // Let's empty the buffers before nap time
if (0 != sleep(NapTime)) {
return -1; // trouble sleeping
}
// Done sleeping!
printf("Midnight\n");
fflush(stdout);
sleep(10);
}
}

关于将 time_t 转换为整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19407944/

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