linux17:时间间隔计算脚本练习——距离你的生日还有多少天

linux17:时间间隔计算脚本练习——距离你的生日还有多少天需求距离一个未来的日子还有多少天距离一个过去的日子过去多少天#!/bin/bash#name——timeDistance.sh#function#input a date, to calculate how many days to this day#2022.1.18 daxiongread -p “please input your date like YYYYMMDD ex>20150716 : ” date2#test whether or not have

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

需求

距离一个未来的日子还有多少天
距离一个过去的日子过去多少天

主要是用一个date命令

echo $(($(date --date="2022/01/01" +%s)/86400+1))

脚本写法:

#!/bin/bash

#name——timeDistance.sh


#function

#input a date, to calculate how many days to this day
#2022.1.18 daxiong


read -p  "please input your date like YYYYMMDD ex>20150716 : "  date2

#test whether or not have eight numbers
date_test=$(echo ${date2} | grep '[0-9] \ {8\} ')
if [ "${date_test}" == "" ] ; then
	echo "you must input the right date format... "
	exit 1
fi

#calculate
declare -i date_des=$(date --date="${date2}" +%s)
declare -i date_now=$(date +%s)
declare -i distanceSec=$((${date_des}-${date_now}))

declare -i distanceDay=$(( ${distanceSec}/60/60/24 ))

if [ "$distanceDay" -gt 0 ]; then
        echo "That day hasn't come yet. "
        echo "You have $((${distanceDay}+1)) days."

elif [ "$distanceDay" -eq 0 ]; then
        echo "Just do it now!"
else [ "$distanceDay" -lt 0 ] 
        echo "That day has passed, $((0-${distanceDay})) days ago. "
fi
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/168465.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • linux的traceroute命令详解[通俗易懂]

    linux的traceroute命令详解[通俗易懂]traceroute命令详解traceroute[-46dFITUnrAV][-ffirst_ttl][-ggate,…]       [-idevice][-mmax_ttl][-pport][-ssrc_addr]       [-qnqueries][-Nsqueries][-ttos]       [-lflow_label][-wwait…

    2025年7月4日
    0
  • android从activity跳转到fragment解决

    android从activity跳转到fragment解决背景:我的问题是在主页面出现的,硬是要从跳过好几层的Activity中点击一下就要跳到主页面中的任意一个fragment页面。Activity跳转到Fragment首先我试过广播是不好使的,因为会出现……afteronsaveInstance错误。处理:Activity跳到fragment

    2022年5月11日
    42
  • 报错:warning: large integer implicitly truncated to unsigned type [-Woverflow]

    报错:warning: large integer implicitly truncated to unsigned type [-Woverflow]函数声明:voidpri_hex(constBYTE*buf,BYTElen,constchar*pname);按照如下方式调用时,报错。pri_hex(buff,READ_NUM,"buff");报错内容如标题。其中READ_NUM是一个宏定义。#defineREAD_NUM1024很明显,是调用函数时,输入的参数,超出函数定义的参数的范围。修改为如…

    2022年7月25日
    35
  • mysql 5.6 新安装登录

    mysql 5.6 新安装登录

    2021年8月26日
    60
  • java中的protected的权限范围_java中public private protected

    java中的protected的权限范围_java中public private protected摘要:  对于类的成员而言,其能否被其他类所访问,取决于该成员的修饰词;而对于一个类而言,其能否被其他类所访问,也取决于该类的修饰词。在Java中,类成员访问权限修饰词有四类:private,无(包访问权限),protected和public,而其中只有包访问权限和public才能修饰一个类(内部类除外)。特别地,很多Java书籍对protected可见性的介绍都比较笼统,本文重点说明了p…

    2025年7月30日
    0
  • pycharm安装库老是失败_申报状态已申报未导入

    pycharm安装库老是失败_申报状态已申报未导入解决Pycharm导入库失败的问题在pycharm中每一个project都可以有一个属于自己的库,在创建新project的时候会给到一个新的库,这个时候的话就有可能会出现安装过的库报错,还需要重新安装的问题。如果不是创建一个大工程的话可以把这个工程的库的路径指向默认的文件夹,然后在默认的文件夹中安装常用的库,然后小脚本之类的就指向这个文件夹,这样子就不用下次重新安装库了。acondana使用方法:https://blog.csdn.net/weixin_44857413/article/de

    2022年8月28日
    1

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号