當前位置:編程學習大全網 - 編程語言 - 高分求助,用QT語言編程,如何返回系統當前的時間

高分求助,用QT語言編程,如何返回系統當前的時間

#!/bin/bash

####作者:RUIFOX

####功能:取得某日期的任意天前或後的日期

####參數1為?獲得幫助

if [ "$1" = "?" ]

then

echo "功能:取得某日期的任意天前或後的日期

Usage:date_g [-b|-a] [n(days)] [Now(yyyymmdd)]

-b 表示往前的日期

-a 表示往後的日期,缺省為-a 1,即往後壹天

n 表示間隔的天數,缺省為1

Now 表示基點日期,缺省為當前日期

如:date_g -a 365 20050210,結果為20060210"

exit

fi

####參數2表示間隔天數,缺省為1天

Pre=1

if [ "$2" != "" ]

then

Pre=$2

fi

####參數3表示基點日期,缺省為當前系統日期

####如果要輸入特定的基點日期,參數2則不能省略

if [ "$3" != "" ]

then

Len=`expr length "$3"`

if [ $Len != 8 ]

then

echo "非法基點日期[$Len]!!"

exit

fi

year=`echo $3|awk '{print substr($1,1,4)}'`

month=`echo $3|awk '{print substr($1,5,2)}'`

day=`echo $3|awk '{print substr($1,7,2)}'`

DateP=$3

else

month=`date +%m`

day=`date +%d`

year=`date +%Y`

DateP=`date +'%Y%m%d'`

fi

####參數1表示向前或向後計數

if [ "$1" = "-a" ]

then

day=`expr $day + $Pre`

Ss="後"

else

day=`expr $day - $Pre`

Ss="前"

fi

####函數mon_max_day獲得每個月的最大天數

####參數壹:月數(1-12)

####輸出:顯示最大天數

mon_max_day()

{

day=0

if [ $1 -gt 0 -a $1 -lt 13 ]

then

case $1 in

1|01|3|03|5|05|7|07|8|08|10|12) day=31;;

4|04|6|06|9|09|11) day=30;;

2|02)

if [ `expr $year % 4` -eq 0 ]; then

if [ `expr $year % 400` -eq 0 ]; then

day=29

elif [ `expr $year % 100` -eq 0 ]; then

day=28

else

day=29

fi

else

day=28

fi;;

esac

fi

printf $day

}

####主程序開始

Max=`mon_max_day $month`

####針對向前的情況

while [ $day -le 0 ]

do

month=`expr $month - 1`

if [ $month -eq 0 ]

then

month=12

year=`expr $year - 1`

fi

Max=`mon_max_day $month`

day=`expr $day + $Max`

done

####針對向後的情況

while [ $day -gt $Max ]

do

day=`expr $day - $Max`

month=`expr $month + 1`

if [ $month -eq 13 ]

then

month=1

year=`expr $year + 1`

fi

Max=`mon_max_day $month`

done

DateA=`printf "%02d%02d%02d" $year $month $day`

echo "基點日期為[$DateP], $Pre天$Ss的日期為[$DateA]"

  • 上一篇:快遞單號打印機買哪個
  • 下一篇:高分求助!想買壹個筆記本電腦
  • copyright 2024編程學習大全網