如何用c语言编写秒表(c语言怎么计时输出秒)

网友投稿 746 2022-06-13


在我们日常生活中离不开时钟,从早上的脑中叫醒到晚上提醒睡觉,时间在我们身边一分一秒地流过。可是,在我们生活中接触的是智能手机或者电脑上的时间,却没有接触编程语言设计的秒表时间。今天就带大家了解一下如何使用C语言编写秒表。

实现思路及代码

如何获取流逝的时间长度?

要实现一个秒表,首先要知道从开始计时至今过了多久。在*nix 系统中,表示时刻的事实标准是Epoch Time[1],在shell脚本中要获取 Epoch Time 可以用date命令。再用首尾时刻相减便得到了期间流逝的秒数了,示例代码如下

begin_at=$(date '+%s') # 睡个觉 end_at=$(date '+%s')

((interval=${end_at} - ${begin_at}))

双圆括号是一种在shell脚本中执行算术运算的语法,其它语法可以参见Math in Shell Scripts[2]。

如何换算为时分秒?

有了interval中存储的总秒数后,换算成时分秒便是轻而易举的事情,示例代码如下

((hours=${interval} / 3600)) ((minutes=(${interval} % 3600) / 60)) ((seconds=(${interval} % 3600) % 60))

如何输出形如hh:mm:ss的格式?

hh:mm:ss的意思是分别用两个十进制数字显示时分秒,并以冒号分隔它们。如果有任何一个单位的数值小于 10,便用字符0填充左侧的空白。按这个格式,凌晨 1 点 2 分 3 秒便会显示为01:02:03。

要在命令行中打印字符串,最容易想到的便是echo命令,只可惜它不能方便地实现填充字符0的需求。

强人所难也不是不行,示例代码如下

hours=1

minutes=2

seconds=3

if [ "${hours}" -lt '10' ];

then

echo -n "0${hours}"

else

echo -n "${hours}"

fi

echo -n ':'

if [ "${minutes}" -lt '10' ];

then

echo -n "0${minutes}"

else

echo -n "${minutes}"

fi

echo -n ':'

if [ "${seconds}" -lt '10' ];

then

echo -n "0${seconds}"

else

echo -n "${seconds}"

fi

更优雅的方法是用printf命令来自动填充左侧的字符0

printf "%02d:%02d:%02d" ${hours} ${minutes} ${seconds}


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:零基础入门的python教程(新手怎么入门python)
下一篇:学计算机一定要学c语言吗?(C语言是计算机专业必学的吗)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~