每天一道编程题(4)

本文介绍了如何使用脚本打印指定数字的乘法表,并计算距离个人生日还剩多少天和小时。通过使用awk进行日期和时间计算,实现了便捷的时间差计算。

6.编写一个脚本,打印任何数的乘法表。如输入3则打印

  1*1=1
  2*1=2 2*2=4
  3*1=3 3*2=6 3*3=9

read -p "Please enter your number:" number
awk '{for(i=1;i<=$1;i++){for(j=1;j<=i;j++){printf("%d*%d=%d "),i,j,i*j}printf("\n")}}' <<<$number

   今天效率很高,和昨天那个差不多。

7. 编写一个脚本,输入自己的生日时间(YYYYMMDD),计算还有多少天多少个小时是自己的生日。

    看别人写的:

#!/bin/sh
awk '{print int($0/86400)"天"int($0%86400/3600)"小时"int($0%86400%3600/60)"分钟"}' <<<$[$(date -d "`date +%Y`${1:4}" +%s)-`date +%s`]

   其中date +%Y`${1:4}是指将参数从第四个字符开始截断。这里有个问题,此人今年刚过了生日,那么下一个生日即是明年才过,所以代码更改如下:

#!/bin/sh
time=$(($(date -d "`date +%Y`${1:4}" +%s)-`date +%s`))
if [ $time -le 0 ];then
  time=$(($time + 31536000))
fi
day=$(($time/86400))
hour=$(($time%86400/3600))
min=$(($time%86400%2400/60))
echo "$day天$hour小时$min分钟"

    这次又忘记赋值时不要引用$,并且中间无空格。切记!

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值