shell中给出一个用秒表示的时间数,如何转换成时分秒表示的形式,如3600秒,如何表示成01:00:00的形式,急

 我来答
LinLen
2018-04-12 · TA获得超过435个赞
知道小有建树答主
回答量:470
采纳率:40%
帮助的人:181万
展开全部
取巧方式(利用UTC时间,给出的秒数比较小(0-57599)可以用这个):
date -d"@3600" | awk '{print $4}'| awk -F":" '{$1=$1-8;OFS=":"}END{print $0}'
最好自己直接写脚本:
cat hours.sh
#!/bin/bash
hour=$(( $1/3600 ))
min=$(( ($1-${hour}*3600)/60 ))
sec=$(( $1-${hour}*3600-${min}*60 ))
echo ${hour}:${min}:${sec}
运行sh hours.sh 3702得1:1:42
lj84386655
推荐于2016-12-01 · TA获得超过944个赞
知道小有建树答主
回答量:358
采纳率:100%
帮助的人:245万
展开全部
自己写个小程序吧
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
main()
{
int min=0,second=0,hour=0;
printf("请输入秒:");
scanf("%d",&second);
hour=second/3600;
min=second/60%60;
second%=60;
printf("%02d:%02d:%02d",hour,min,second);
return 0;
}

或者写成shell 脚本来做也行
shell脚本内容如下:
#!/bin/bash
min=0
second=0
hour=0
if [ $# -ne 1 ]
then
read -p "input second:" second
elif [ $# -eq 1 ]
then
second=$1
fi
hour=$[$second / 3600]
min=$[$[$second/60]%60]
#min=$[$second / 60]
#min=$[$min%60]
second=$[$second % 60];
printf "%02d:%02d:%02d" $hour $min $second

可以直接运行 也可以带一个参数(该参数即为待转化的秒)
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
只爱度
2018-04-10 · TA获得超过560个赞
知道小有建树答主
回答量:460
采纳率:100%
帮助的人:96.4万
展开全部

写个shell脚本咯

#!/bin/bash
seconds=$1
hour=$(echo "${seconds}/3600" | bc)
minute=$(echo "${seconds}/60%60" | bc)
sec=$(echo "${seconds}%60" | bc)
printf "%02d:%02d:%02d" $hour $minute $sec
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
hunantxy
2013-05-15 · TA获得超过132个赞
知道小有建树答主
回答量:217
采纳率:0%
帮助的人:109万
展开全部
一行就可以搞定的:
echo "$((3600/3600)):$((3600%3600/60)):$((3600%3600%60))"
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式