当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 4 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : 尝试编写一个倒计时的脚本却遇到点小问题
帖子发表于 : 2017-08-09 0:18 
头像

注册: 2017-07-04 9:54
帖子: 13
系统: ubuntu 16.04
送出感谢: 2
接收感谢: 0 次
#!/bin/bash
#Postgraduate countdown for Jessie

PATH=/bin:/sbin:/usr/bin:usr/sbin:usr/local/bin:usr/local/sbin:~/bin
export PATH

echo "This timer will try to calculate: "
echo "How many days before your postgraduate entrance examination."
read -p "Please input your examination date (YYYYMMDD ex>20170101): " dateshuru

datetianshu=$(echo $dateshuru | grep '[0-9]\{8\}')
if [ "datetianshu" == "" ];then
echo "You input the wrong date format."
exit 1
fi

declare -i datezuihou=`date --date="$dateshuru" +%s`
declare -i datexianzai=`date +%s`
declare -i datezonggong=$(($datezuihou-$datexianzai))
declare -i datetianshu=$(($datezonggong/60/60/24))

if [ "$datezonggong" -lt "0" ];then
echo "You had been examination before "$((-l*$datezonggong))" days ago"

else
declare -i datexiaoshi=$(($(($datezonggong-$datetianshu*60*60*24))/60/60))
echo "You will postgraduate after $datetianshu days and $datexiaoshi hours."


我输入20171224没问题,可以显示出时间,可是如果我输入过去的时间,它老是显示
Please input your examination date (YYYYMMDD ex>20170101): 20170805
You had been examination before 0 days ago
按道理来说不应该老是0天啊~

哪位大神可以帮忙看下哪儿出问题了吗?我是参考着一个范本做的,对“$((-l*$datezonggong))”还不是很理解,尤其是里面“-l*”这个写法没弄明白,还望大神多多指教。 :Cry


_________________
1101010111000101
1101000111010111
1110110011110100


页首
 用户资料  
 
2 楼 
 文章标题 : Re: 尝试编写一个倒计时的脚本却遇到点小问题
帖子发表于 : 2017-08-09 10:28 
头像

注册: 2017-07-04 9:54
帖子: 13
系统: ubuntu 16.04
送出感谢: 2
接收感谢: 0 次
好吧,同志们,我知道了,就是因为“-l*”的原因,所以老是显示0天,把这个去掉就能显示出准确的天数了,只不过是负的。
我猜测“-l*”这个是用来修正负数的。


_________________
1101010111000101
1101000111010111
1110110011110100


页首
 用户资料  
 
3 楼 
 文章标题 : Re: 尝试编写一个倒计时的脚本却遇到点小问题
帖子发表于 : 2017-08-09 10:34 
头像

注册: 2008-09-18 13:11
帖子: 2634
送出感谢: 1
接收感谢: 418
不知道是谁把-1看成了-l,另外那算出来的是秒数,不是天数
:em04



_________________
评价: 3.7% zhangyanzhen
 
页首
 用户资料  
 
4 楼 
 文章标题 : Re: 尝试编写一个倒计时的脚本却遇到点小问题
帖子发表于 : 2017-08-09 22:29 
头像

注册: 2017-07-04 9:54
帖子: 13
系统: ubuntu 16.04
送出感谢: 2
接收感谢: 0 次
astolia 写道:
不知道是谁把-1看成了-l,另外那算出来的是秒数,不是天数
:em04



恩恩,今晚我也发现了,尝试着改成了数字1,OK啦~
:em06


_________________
1101010111000101
1101000111010111
1110110011110100


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 4 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:Google [Bot] 和 2 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译