社区
C语言
帖子详情
请教高手:怎样计算char之间的时间差?
ghostxinghe
2005-08-18 11:11:34
怎样计算两个char的时间差(单位秒)
举例:char string1[20]="2005-08-15 12:00:00";
char string2[20]="2005-08-15 13:34:23";
strcpy(string1,"2005-08-15 12:00:00");
strcpy(string2,"2006-03-07 13:12:34");
请问怎样计算string2与string1的时间差(秒)
...全文
157
8
打赏
收藏
请教高手:怎样计算char之间的时间差?
怎样计算两个char的时间差(单位秒) 举例:char string1[20]="2005-08-15 12:00:00"; char string2[20]="2005-08-15 13:34:23"; strcpy(string1,"2005-08-15 12:00:00"); strcpy(string2,"2006-03-07 13:12:34"); 请问怎样计算string2与string1的时间差(秒)
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
chillming
2005-10-25
打赏
举报
回复
include <stdio.h>
#include <time.h>
#include <string.h>
int main(void)
{
time_t t1,t2;
double result;
struct tm tm;
char date[20],time[20];
char string1[20]="2005-08-15 12:00:00";
char string2[20]="2005-08-15 12:00:30";
sscanf(string1,"%s %s",date,time);
sscanf(date"%d-%d-%d",&(tm.tm_year), &(tm.tm_mon),&(tm.tm_mday));
sscanf(date"%d:%d:%d",&(tm.tm_hour), &(tm.tm_min),&(tm.tm_sec));
t1 = mktime(&tm);
sscanf(string2,"%s %s",date,time);
sscanf(date"%d-%d-%d",&(tm.tm_year), &(tm.tm_mon),&(tm.tm_mday));
sscanf(date"%d:%d:%d",&(tm.tm_hour), &(tm.tm_min),&(tm.tm_sec));
t2 = mktime(&tm);
result =difftime(t2,t1);
printf("%f\n",result);
return 0;
}
chillming
2005-10-25
打赏
举报
回复
#include <stdio.h>
#include <time.h>
#include <string.h>
int main(void)
{
time_t t1,t2;
double result;
struct tm tm;
char date[20],time[20];
char string1[20]="2005-08-15 12:00:00";
char string2[20]="2005-08-15 12:00:30";
sscanf(string1,"%s %s",date,time);
sscanf(date"%d-%d-%d",tm.tm_year, tm.tm_mon,tm.tm_mday);
sscanf(date"%d:%d:%d",tm.tm_hour, tm.tm_min,tm.tm_sec);
t1 = mktime(&tm);
sscanf(string2,"%s %s",date,time);
sscanf(date"%d-%d-%d",tm.tm_year, tm.tm_mon,tm.tm_mday);
sscanf(date"%d:%d:%d",tm.tm_hour, tm.tm_min,tm.tm_sec);
t2 = mktime(&tm);
result =difftime(t2,t1);
printf("%f\n",result);
return 0;
}
你修改一下吧,我没有gcc过的
jixingzhong
2005-08-18
打赏
举报
回复
可能上面的的程序还有问题,不过基本的思路是有了 ...
jixingzhong
2005-08-18
打赏
举报
回复
或者直接来 :
char s[20];
while (string1[i++] != '\0' ) //因为是等厂的,所以这样也可以了
{
if (string1[i]>='0'&&string1[i]<='9') //是数字,就执行做差的运算 !
s[i]= string2[i]-string1[i];
else s[i] = string1[i];
}
jixingzhong
2005-08-18
打赏
举报
回复
转换成 time_t格式,
用 difftime() 就可以了 ...
darkstar21cn
2005-08-18
打赏
举报
回复
先转成struct tm,然后转成time_t,就可以直接减了,得到的就是你想要的结果。
bugebear3
2005-08-18
打赏
举报
回复
#include <stdio.h>
#include <time.h>
int main(void)
{
size_t i,j;
double result;
char string1[20]="2005-08-15 12:00:00";
char string2[20]="2005-08-15 12:00:30";
i = (time_t)string1;
j = (time_t)string2;
result =difftime(j,i);
printf("%f\n",result);
return 0;
}
----------------------------------------------------------
但结果怎么总是-28?
ghostxinghe
2005-08-18
打赏
举报
回复
能请各位大师说的具体一些嘛?
先转成struct tm,然后转成time_t,就可以直接减了,得到的就是你想要的结果。
~~~~~~~~~~~~~具体怎么转换这两个类型?
MySQL 数据类型和运算符
============================= # 数据类型 整数类型:五种 TINY SMALL MEDIUM INT BIG 浮点和定点小数类型:三种 FLOAT DOUBLE DECIMAL 日期与时间数据类型:五种 YEAR -1 字符串类型:二种
CHAR
(M) VAR
CHAR
(M) -1 ...
C语言面试题
答:虽然结构体变量
之间
可以通过=直接赋值,但不同通过比较符如==来比较,因为比较符只作用于基本数据类型。这个时候,只能通过int memcmp(const void *s1, const void *s2, size_t n);来进行内存上的比较。 问题3...
C语言终极面试宝典
、嵌入式系统中经常要用到无限循环,你怎么样用 C 编写死循环呢? 10 34 、位操作( Bit manipulation ) 10 35 、访问固定的内存位置( Accessing fixed memory locations ) 11 36 、中断( Interrupts ) ...
matlab偏导数迭代法工具箱,
请教
吴老师:PDE工具箱能解两个偏微分方程相互迭代求解吗...
请教
吴老师:PDE工具箱能解两个偏微分方程相互迭代求解吗?请求圆域上二维薛定谔方程泊松方程迭代自洽的MATLAB解法感恩吴老师!您的书收到,很受益!感恩您的辛苦!越来越快毕业了,老板催交论文时间很急!只是苦于...
C++ 学习方法汇总
Re:
请教
:如何学好C++语言呢? 发信站: 南京大学小百合站 (Fri May 2 18:25:45 2003) <br /> (1)、入门级别(3本):概观C++程序设计语言、Essential C++、C++编程思想 (2)、基础级别(3本):C++ ...
C语言
69,373
社区成员
243,079
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章