From dd78faaf40862bd1552ec36c41374b527f747284 Mon Sep 17 00:00:00 2001 From: Xiao Pan Date: Fri, 23 Feb 2024 03:08:52 -0800 Subject: Reorganize shell scripts into sh dir, consider in the future fsh will have different kinds of files --- sh/dateft | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100755 sh/dateft (limited to 'sh/dateft') diff --git a/sh/dateft b/sh/dateft new file mode 100755 index 0000000..b317474 --- /dev/null +++ b/sh/dateft @@ -0,0 +1,29 @@ +#!/bin/sh +# DATE From To + +while getopts cfF:t:T: opt; do + case $opt in + c) tz_from="Asia/Shanghai";; + f) tz_from="$(tzselect)";; + F) tz_from="$OPTARG";; + # one extra ',' at the end will not let `for tz in ...` loop one extra time? + t) for i in $(seq "$OPTARG"); do + tz_to="$(tzselect),$tz_to" + done;; + T) tz_to="$OPTARG,$tz_to";; + \?) exit 1;; + esac +done +shift $((OPTIND-1)) + +time_from="TZ=\"${tz_from:-$(readlink /etc/localtime | sed 's#.*/\(.*/.*\)$#\1#')}\" ${1:-now}" + +date -d "$time_from" +TZ="Asia/Shanghai" date -d "$time_from" +date -d "$time_from" -u +date -d "$time_from" +%s +[ "$tz_from" ] && [ "$tz_from" != "Asia/Shanghai" ] && TZ="$tz_from" date -d "$time_from" +IFS=',' +for tz in $tz_to; do + TZ="$tz" date -d "$time_from" +done -- cgit v1.2.3-70-g09d2