aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSilvio Rhatto <rhatto@riseup.net>2024-07-16 19:16:39 -0300
committerSilvio Rhatto <rhatto@riseup.net>2024-07-16 19:16:39 -0300
commitd37ff984209438d7e88361cf33bb2369abaee7b4 (patch)
treeedd2f1e2a966cf417594f1c7dfd01b9222acd486
parentb75561585c6269196a3ffa8713621bb377f39fa8 (diff)
downloadscripts-d37ff984209438d7e88361cf33bb2369abaee7b4.tar.gz
scripts-d37ff984209438d7e88361cf33bb2369abaee7b4.tar.bz2
Feat: add quarter-timestamps
-rwxr-xr-xquarter-timestamps50
1 files changed, 50 insertions, 0 deletions
diff --git a/quarter-timestamps b/quarter-timestamps
new file mode 100755
index 0000000..8f1bab5
--- /dev/null
+++ b/quarter-timestamps
@@ -0,0 +1,50 @@
+#!/usr/bin/env bash
+#
+# Determine the quarter's timestamps
+#
+
+# Parameters
+BASENAME="`basename $0`"
+DIRNAME="`dirname $0`"
+QUARTER="$1"
+YEAR="`echo $QUARTER | cut -d . -f 1`"
+QUARTILE="`echo $QUARTER | cut -d . -f 2`"
+
+# Syntax check
+if [ -z "$QUARTILE" ]; then
+ echo "usage: $BASENAME <quarter>"
+ echo "quarter format: YYYY.QQ"
+ echo "example: 2024.Q3"
+ exit 1
+fi
+
+# Lookup table
+case $QUARTILE in
+ Q1)
+ BEGIN="01-01"
+ END="03-31"
+ ;;
+
+ Q2)
+ BEGIN="04-01"
+ END="06-30"
+ ;;
+
+ Q3)
+ BEGIN="07-01"
+ END="09-30"
+ ;;
+
+ Q4)
+ BEGIN="10-01"
+ END="12-31"
+ ;;
+esac
+
+# Determine the UNIX timestamp for the beginning and end of the quarter
+QUARTER_BEGIN="`date -d "${YEAR}-${BEGIN} 00:00:00 UTC" +%s`"
+QUARTER_END="`date -d "${YEAR}-${END} 00:00:00 UTC" +%s`"
+
+# Output
+echo "Quarter begins at UNIX timestamp $QUARTER_BEGIN ($YEAR-$BEGIN)"
+echo "Quarter ends et UNIX timestamp $QUARTER_END ($YEAR-$END)"