gpt4 book ai didi

C 计算两个时间行程之间的差异?

转载 作者:行者123 更新时间:2023-11-30 17:44:41 26 4
gpt4 key购买 nike

我正在尝试学习结构和函数,并使其变得更有趣,我有一个作业要求我创建一个程序来扫描两个时间戳并计算它们之间的差异。

我已经担心在午夜计算时间戳时代码会是什么样子......

无论如何,我将使用函数calculateTimeToDiff()来计算时间戳之间的差异。该函数有两个参数,第一个时间戳和第二个时间戳。它将返回两个 tiemstamp 之间的差异。

问题1

我真的很好奇为什么我不能扫描使用两个冒号作为分隔符的值:

scanf("%d::%d::%d", &time.小时, &time.分钟, &time.秒);

我必须这样输入(这是正确的输入方式):

scanf("%d:%d:%d", &time.小时, &time.分钟, &time.秒);

这就是我计划制作的程序,但我相信你会对我生气,说我不应该这样做,因为 blabla。由于我几乎不了解结构和函数,请解释一下我应该如何做,就像我五岁一样:

#include <stdio.h>

int calculateTimeDiff(int time1, int time2)
{
int difference = time1 - time2;

return difference;
}

int main(void)
{
typedef struct
{
int hours;
int minutes;
int seconds;
} Time;

Time firstTime;
Time secondTime;

printf("Time #1: ");
scanf("%d:%d:%d", &firstTime.hours, &firstTime.minutes, &firstTime.seconds);

printf("Time #2: ");
scanf("%d:%d:%d", &secondTime.hours, &secondTime.minutes, &secondTime.seconds);

// I understand that it will not work to separate the variables with a comma, but I am kind of stuck here
int firstFullTime = firstTime.hours, firstTime.minutes, firstTime.seconds;
int secondFullTime = secondTime.hours, secondTime.minutes, secondTime.seconds;

calculateTimeDiff(firstFullTime, secondFullTime);

return 0;
}

最佳答案

我会采取不同的方法:

  1. 对于两个时间戳,请使用 fgets()将它们分别读入一个“字符串”。

  2. 使用strptime()将“string”转换为struct tm

  3. 使用mktime()struct tms 创建 time_ts。

  4. 然后最后使用difftime()计算以秒为单位的差异。

关于C 计算两个时间行程之间的差异?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19891380/

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