shell脚本计算离生日还有多少天?
1.计算测试:
注:分别输入5和1代表5月1日
注:此为计算结果
适用于UTF-8字符集,在Centos6.x中测试成功
2.脚本如下:
#!/bin/bash
#Aiden
#QQ:2575815569
#Please check the exact date of your computer
#How many days are there to calculate to the next few days.
read -p "Please enter your calculate moon (例如:6):" moon
read -p "Please enter your calculate day (例如:18):" day
clear
echo "Now the time is `date|cut -c7-13`"
declare date=`date`
nowmonth=`date|cut -c7-8`
nowday=`date|cut -c11-12`
declare -i oday=`expr $day - $nowday`
declare -i omonth=`expr $moon - $nowmonth`
declare -i cheng=`expr $omonth \* 30`
declare -i jia=`expr $cheng + $oday`
declare -i jian=`expr $nowday - $day`
declare -i jieguo=`expr $cheng - $jian`
declare -i jian2=`expr $nowmonth - $moon`
declare -i cheng2=`expr $jian2 \* 30 + $jian`
declare -i year=`expr 365 - $cheng2`
declare -i year2=`expr $year / 30`
declare -i year3=`expr $year % 30`
declare -i year4=`expr 365 - $jian`
declare -i year5=`expr $year4 / 30`
declare -i year6=`expr $year4 % 30`
if [ $moon -gt $nowmonth ]&&[ $day -gt $nowday ];thenecho "距离$moon月$day日还有$omonth月零$oday天."echo "也就是$jia天."
elif [ $moon -gt $nowmonth ]&&[ $day -lt $nowday ];thenecho "距离$moon月$day日还有$jieguo天."if [ $jieguo -gt 30 ];thenecho "也就是`expr $jieguo / 30`月零`expr $jieguo % 30`天."fi
elif [ $moon -lt $nowmonth ]&&[ $day -lt $nowday ];thenecho "距离$moon月$day日还有$year2月$year3天."echo "也就是$year天."
elif [ $moon -lt $nowmonth ]&&[ $day -gt $nowday ];thenecho "距离$moon月$day日还有$year2月$oday天."echo "也就是`expr $year2 \* 30 + $oday`天."
elif [ $moon -eq $nowmonth ]&&[ $day -eq $nowday ];thenecho "今天就是$moon月$day日哦!"
elif [ $moon -eq $nowmonth ]&&[ $day -gt $nowday ];thenecho "只剩$oday天了."
elif [ $moon -eq $nowmonth ]&&[ $day -lt $nowday ];thenecho "距离$moon月$day日还有$year5月零$year6天."echo "也就是$year4天."
elseclearecho "输入有误!请输入纯数字."
fi(如有报错可能是9.11.12行-c后面的字数需要按照你本机date显示的去修改,一般不需要修改,下面有注释)
3,注释
if | -eq等于 | -ne不等于 | -gt大于 | -lt小于 | -le小于等于 | -ge大于等于 | =相等 | !=不等 | -z空串 -n非空串 |
if 如果 elif 再如果 else 否则 |管道符 $变量 &&并且
expr | +加 | -减 | \*乘 | /除 | %取余数 |
declare -i | 声明( -i参数为数值) 这里表达声明后面的变量为数值 |
echo “” | 输出到屏幕(``里可以执行命令) |
read | 基本读取 (-p可以跟多个变量) |
cut | 文本处理-取值命令 |
cut -c7-13 | -c指定列 这里是7-13列(本文7-13列是月和日,7-8是月,11-12是日,如报错请在你本机date查看日期修改相对字数) |
有bug和意见可以直接评论或者私信我都可以
文章此处为颜色参数请忽略<span style="background-color:rgb(204,204,204);"></span>
不支持中文字符的同学请自行把汉子和!修改掉哦
shell脚本计算离生日还有多少天?相关推荐
- 用shell脚本计算日期的小函数们
参考:http://qiuqiang1985.iteye.com/blog/1647761 参考:http://my.oschina.net/SmileWolf/blog/159624 当你遇到一个d ...
- shell脚本计算任意个数的加减乘除
#!/bin/bash if [ $# -eq 0 ]; thenecho "输入值不能为空" //提示不能输入空值 注:$#代表环境变量个数exit finum=$* //定义一 ...
- php 生日还剩多少天,请教PHP中计算离生日还剩下多少天问题?
如 生日是10-04 那么离他生日应该有200多天的样子 求支招 回复内容: 如 生日是10-04 那么离他生日应该有200多天的样子 求支招 http://php.com/manual/en/dat ...
- linux脚本求命令行上整数和,shell脚本--cut命令与awk简单使用
cut:对内容进行列切割 -d 后面的是分割符,表示用什么符号来分割符来分割列,分隔符使用引号括起来: -f后面跟着要选择的字段列,从1开始,表示第一列,如果要多列,可以用逗号分隔 : -c参数后面跟 ...
- linux shell脚本使用bc命令实现小数数值计算
目录 问题背景 思路分析 解决方法 问题背景 通常实际工作中使用shell脚本计算小数加减乘除时,需要将计算结果再保存到变量中. 思路分析 使用bc方法,同时新建变量用反引号执行后面计算命令(键盘左上 ...
- idmp计算任务shell脚本创建路径全过程
idmp计算任务线上部署思路全过程 1.预处理 a.准备geohash地理位置字典(很长时间设置一遍) b.id-mapping用户的唯一标识是每天都要去做的! --在hdfs中创建地区字典文件夹 h ...
- Shell 脚本的时间的加减,以及时间差的计算
Shell 脚本时候,遇到的时间处理问题.时间的加减,以及时间差的计算. 1.时间加减 这里处理方法,是将基础的时间转变为时间戳,然后,需要增加或者改变时间,变成 秒. 如:1990-01-01 01 ...
- Shell脚本中计算字符串长度的5种方法
这篇文章主要介绍了Shell脚本中计算字符串长度的5种方法,来自于个人Shell脚本长期的开发经验,需要的朋友可以参考下 有时在Linux操作系统中需要计算某个字符串的长度,通过查询资料整理了下目前S ...
- SHELL脚本下获取文件时间转换时间戳,使用时间戳计算日期差
SHELL脚本下获取文件时间使用时间戳计算日期差 获取时间戳按秒计算 获取 LINUX获取当前时间的时间戳 获取文件的时间戳 计算 获取时间戳按秒计算 获取 LINUX获取当前时间的时间戳 #确认时间 ...
最新文章
- qt android 开发之wifi开发篇
- 周末一起用文本数据库玩玩Code First
- python小程序-python好玩的小程序
- python类的继承super方法_Python类的继承super相关原理解析
- [BZOJ 2659] [Beijing wc2012] 算不出的算式
- mysql分组后再分组_全网最全的mysql分组后取topN的解答
- Windows 2012部署Exchange2013
- ElasticSearch学习(一):Linux环境准备
- webqq linux,Ubuntu 11.10安装WebQQ
- 人工智能就是计算机科学的英语,人工智能的英语解释
- 华为数据治理及数据分类管理实践
- FFmpeg进阶:给视频添加文字水印
- tortoisegit 小乌龟的使用
- TX2081ALBJ3超低功耗半导体指纹识别模组 智能锁 指纹考勤打卡 指纹门禁系统应用
- web页面-JS/DOM/BOM/窗口滚动/修改内容/上传文件
- Mac打不开别人的.one文件
- 老扎克伯格的四位儿女全是人生赢家,到底是怎么教的?
- Android 编译系统之Android.bp
- transition transform translate 之间的区别
- windows安装IIS服务