文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>linux 时间计算脚本

linux 时间计算脚本

时间:2010-04-09  来源:night85

#!/bin/bash

# User Defined Variables
# H,M,S        系統時間
# rhflag    0 = 當日, 1 = 明天, 2 = 後天...
# strUsage    參數提示訊息
# timeoffset    使用者輸入的時間 (時:分:秒)
# oh,om,os    從 timeoffset 提列出來的 時, 分, 秒 (case 1) / 進位值 (case 2)
# rh,rm,rs    運算結果 時, 分, 秒
# offset    使用 -h, -m, -s 參數時, 使用者帶入的數值

# System Variables
# $#    參數數量
# $0    Shell Script 檔名
# $1    第一個參數
# $2    第二個參數

H=`date +%H`
M=`date +%M`
S=`date +%S`
rhflag=0
strUsage="Usage:\n$0 hh:mm:ss\nor\n$0 [-h|-m|-s] number\n"

case "$#" in
1)
    timeoffset=$1
    oh=`echo $timeoffset | awk -F ':' '{print $1}'`
    om=`echo $timeoffset | awk -F ':' '{print $2}'`
    os=`echo $timeoffset | awk -F ':' '{print $3}'`
    rs=`expr $S + $os`
    if [ $rs -gt 59 ]; then
        ((rs -= 60))
        om=`expr $om + 1`
    fi
    rm=`expr $M + $om`
    if [ $rm -gt 59 ]; then
        ((rm -= 60))
        oh=`expr $oh + 1`
    fi
    rh=`expr $H + $oh`
    if [ $rh -gt 24 ]; then
        ((rhflag = rh / 24))
        ((rh %= 24))
    fi
;;

2)
    offset=$2
    if [ $1 == "-h" ]; then
        rh=`expr $H + $offset`
        rm=$M
        rs=$S
        if [ $rh -gt 24 ]; then
            ((rhflag = rh / 24))
            ((rh %= 24))
        fi
    elif [ $1 == "-m" ]; then
        rh=$H
        rm=`expr $M + $offset`
        rs=$S
        if [ $rm -gt 59 ]; then
            ((oh = rm / 60))
            ((rm %= 60))
            rh=`expr $H + $oh`
            if [ $rh -gt 24 ]; then
                ((rhflag = rh / 24))
                ((rh %= 24))
            fi
        fi
    elif [ $1 == "-s" ]; then
        rh=$H
        rm=$M
        rs=`expr $S + $offset`
        if [ $rs -gt 59 ]; then
            ((om = rs / 60))
            ((rs %= 60))
            ((rm += om))
            if [ $rm -gt 59 ]; then
                ((oh = rm / 60))
                ((rm %= 60))
                ((rh += oh))
                if [ $rh -gt 24 ]; then
                    ((rhflag = rh / 24))
                    ((rh %= 24))
                fi
            fi
            
        fi
    else
        printf $strUsage
        exit 1
    fi
;;

*)
    printf $strUsage
    exit 1
;;
esac

if [ $rh -eq 24 ]; then
    rh=0
    rhflag=1
fi
echo "$H:$M:$S"
echo "$rhflag $rh:$rm:$rs"
相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载