C语言中两个日期之间的秒差
我想计算两个日期之间的秒差,但结果是0 代码如下:C语言中两个日期之间的秒差,c,algorithm,time.h,time-t,difftime,C,Algorithm,Time.h,Time T,Difftime,我想计算两个日期之间的秒差,但结果是0 代码如下: time_t=time(NULL); struct tm * timeNow=localtime(); time_t start=mktime(&*timeNow); time_t end=mktime(&*recordFind->timeInserted); double seconds=difftime(start,end); recordFind->timeInserted还可以,因为我打印了他的成员,而且还可以
time_t=time(NULL);
struct tm * timeNow=localtime();
time_t start=mktime(&*timeNow);
time_t end=mktime(&*recordFind->timeInserted);
double seconds=difftime(start,end);
recordFind->timeInserted还可以,因为我打印了他的成员,而且还可以,
但当我打印秒数是0.000000 你想要什么
double seconds = difftime(end, start);
而不是
double seconds = difftime(start, end);
您忘了命名变量time\u t=timeNULL;,改为:
time_t now;
double seconds;
time(&now);
seconds = difftime(now, mktime(&recordFind->timeInserted));
你想要
double seconds = difftime(end, start);
而不是
double seconds = difftime(start, end);
您忘了命名变量time\u t=timeNULL;,改为:
time_t now;
double seconds;
time(&now);
seconds = difftime(now, mktime(&recordFind->timeInserted));
请看下面
#include <stdio.h>
struct TIME
{
int seconds;
int minutes;
int hours;
};
void differenceBetweenTimePeriod(struct TIME t1, struct TIME t2, struct TIME *diff);
int main()
{
struct TIME startTime, stopTime, diff;
printf("Enter start time: \n");
printf("Enter hours, minutes and seconds respectively: ");
scanf("%d %d %d", &startTime.hours, &startTime.minutes, &startTime.seconds);
printf("Enter stop time: \n");
printf("Enter hours, minutes and seconds respectively: ");
scanf("%d %d %d", &stopTime.hours, &stopTime.minutes, &stopTime.seconds);
// Calculate the difference between the start and stop time period.
differenceBetweenTimePeriod(startTime, stopTime, &diff);
printf("\nTIME DIFFERENCE: %d:%d:%d - ", startTime.hours, startTime.minutes, startTime.seconds);
printf("%d:%d:%d ", stopTime.hours, stopTime.minutes, stopTime.seconds);
printf("= %d:%d:%d\n", diff.hours, diff.minutes, diff.seconds);
return 0;
}
void differenceBetweenTimePeriod(struct TIME start, struct TIME stop, struct TIME *diff)
{
if(stop.seconds > start.seconds){
--start.minutes;
start.seconds += 60;
}
diff->seconds = start.seconds - stop.seconds;
if(stop.minutes > start.minutes){
--start.hours;
start.minutes += 60;
}
diff->minutes = start.minutes - stop.minutes;
diff->hours = start.hours - stop.hours;
}
请看下面
#include <stdio.h>
struct TIME
{
int seconds;
int minutes;
int hours;
};
void differenceBetweenTimePeriod(struct TIME t1, struct TIME t2, struct TIME *diff);
int main()
{
struct TIME startTime, stopTime, diff;
printf("Enter start time: \n");
printf("Enter hours, minutes and seconds respectively: ");
scanf("%d %d %d", &startTime.hours, &startTime.minutes, &startTime.seconds);
printf("Enter stop time: \n");
printf("Enter hours, minutes and seconds respectively: ");
scanf("%d %d %d", &stopTime.hours, &stopTime.minutes, &stopTime.seconds);
// Calculate the difference between the start and stop time period.
differenceBetweenTimePeriod(startTime, stopTime, &diff);
printf("\nTIME DIFFERENCE: %d:%d:%d - ", startTime.hours, startTime.minutes, startTime.seconds);
printf("%d:%d:%d ", stopTime.hours, stopTime.minutes, stopTime.seconds);
printf("= %d:%d:%d\n", diff.hours, diff.minutes, diff.seconds);
return 0;
}
void differenceBetweenTimePeriod(struct TIME start, struct TIME stop, struct TIME *diff)
{
if(stop.seconds > start.seconds){
--start.minutes;
start.seconds += 60;
}
diff->seconds = start.seconds - stop.seconds;
if(stop.minutes > start.minutes){
--start.hours;
start.minutes += 60;
}
diff->minutes = start.minutes - stop.minutes;
diff->hours = start.hours - stop.hours;
}
时间\u t=timeNULL;-少了什么?另外:&*是没有意义的。请检查这里的示例:time\u t=timeNULL;-少了什么?另外:&*是没有意义的。请检查下面的示例:这不适用于不同日期的两个日期:这不适用于不同日期的两个日期: