c语言编程,怎么计算时间

怎么编写求时间段的就是比如9:28到11:20怎么计算求这个时间段还有就是用结构式输入这个9:28用char好吗还是int怎么搞... 怎么编写 求时间段的 就是 比如 9:28到11:20怎么计算求这个时间段还有 就是 用结构式 输入 这个9:28 用char 好吗 还是int 怎么搞 展开
 我来答
大野瘦子
高粉答主

2018-12-26 · 繁杂信息太多,你要学会辨别
知道小有建树答主
回答量:1227
采纳率:100%
帮助的人:34.7万
展开全部

#include <stdio.h>

#include <stdlib.h>

#include <time.h>

void main()

{

unsigned char time1[] = { 10, 8, 31, 9, 26 };

unsigned char time2[] = { 10, 8, 31, 9, 50 };

struct tm t1 = {0};

struct tm t2 = {0};

time_t _t1;

time_t _t2;

double diff;

t1.tm_year = time1[0] + 100;

t1.tm_mon = time1[1];

t1.tm_mday = time1[2];

t1.tm_hour = time1[3];

t1.tm_min = time1[4];

t2.tm_year = time2[0] + 100;

t2.tm_mon = time2[1];

t2.tm_mday = time2[2];

t2.tm_hour = time2[3];

t2.tm_min = time2[4];

_t1 = _mkgmtime( &t1 );

_t2 = _mkgmtime( &t2 );

diff = difftime(_t2, _t1 );

printf( "相差 %.0f 分钟\n", diff / 60 );

}

扩展资料:

C语言中有两个相关的函数用来计算时间差,分别是:

time_t time( time_t *t)   与 clock_t clock(void)

头文件: time.h

计算的时间单位分别为: s   , ms 

time_t 和 clock_t 是函数库time.h 中定义的用来保存时间的数据结构

返回值:

1、time  : 返回从公元1970年1月1号的UTC时间从0时0分0秒算起到现在所经过的秒数。如果参数 t 非空指针的话,返回的时间会保存在 t 所指向的内存。

2、clock:返回从“开启这个程序进程”到“程序中调用clock()函数”时之间的CPU时钟计时单元(clock tick)数。     1单元 = 1 ms。

所以我们可以根据具体情况需求,判断采用哪一个函数。

具体用法如下例子:

#include <time.h>

#include <stdio.h>

#include <stdlib.h>

int main()

{

time_t c_start, t_start, c_end, t_end;

c_start = clock();    //!< 单位为ms

t_start = time(NULL);  //!< 单位为s

system("pause");

c_end   = clock();

t_end = time(NULL);

//!<difftime(time_t, time_t)返回两个time_t变量间的时间间隔,即时间差

printf("The pause used %f ms by clock()\n",difftime(c_end,c_start)); 

printf("The pause used %f s by time()\n",difftime(t_end,t_start));

system("pause");

return 0;

}

因此,要计算某一函数块的占用时间时,只需要在执行该函数块之前和执行完该函数块之后调用同一个时间计算函数。再调用函数difftime()计算两者的差,即可得到耗费时间。

匿名用户
2014-05-18
展开全部
将时间转换为分钟数,例如9:28=9个小时*60分+28分,然后想减得到以分钟为单位的时间差,再转换为小时打印,例如100分=1:40。#include <stdio.h>
int main(int argc, char* argv[])
{
int time1 = 9*60+28;
int time2 = 11*60+20;
int interval = time2-time1;
int hour = interval/60;
int minute = interval%60;
printf("The interval is %d:%d.\n",hour,minute); return 0;
}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2014-05-18
展开全部
时间段是什么意思?
是计算多少分钟吗? 可以直接用时间函数吧,
C语言的time.h头文件提供了这样的结构体和一些时间函数的方法. 你可以查询试试.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
liouyi250
2017-08-11 · TA获得超过314个赞
知道小有建树答主
回答量:375
采纳率:60%
帮助的人:65.3万
展开全部
#include <stdio.h>
#include <time.h>

int main(){
    tm time1,time2;
    time1.tm_hour=9;
    time1.tm_min=28;
    time1.tm_sec=0;
    time1.tm_year=2017-1900;
    time1.tm_mon=8;
    time1.tm_mday=11;
    
    time2.tm_hour=11;
    time2.tm_min=20;
    time2.tm_sec=0;
    time2.tm_year=2017-1900;
    time2.tm_mon=8;
    time2.tm_mday=11;
    
    time_t t1=mktime(&time1);
    time_t t2=mktime(&time2);
    
    double eclipse=difftime(t2,t1);
    printf("一共过去了:%lf分钟\n",eclipse/60);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2017-08-11
展开全部
这样写吧。int begin_hour,begin_minute,end_hour,end_minute;
scanf("%d:%d %d:%d",&begin_hour,&begin_minute,&end_hour,&end_minute);
int mint1 = begin_hour*60+begin_minute;
int mint2 = end_hour* 60 +end_minute;
int mint = mint2 - mint1;.
你想的话也可以转化成hh::mm的形式
int hour = mint / 60;
int minute = mint % 60;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式