]> gitweb.fluxo.info Git - scripts.git/commitdiff
Feat: add quarter-timestamps
authorSilvio Rhatto <rhatto@riseup.net>
Tue, 16 Jul 2024 22:16:39 +0000 (19:16 -0300)
committerSilvio Rhatto <rhatto@riseup.net>
Tue, 16 Jul 2024 22:16:39 +0000 (19:16 -0300)
quarter-timestamps [new file with mode: 0755]

diff --git a/quarter-timestamps b/quarter-timestamps
new file mode 100755 (executable)
index 0000000..8f1bab5
--- /dev/null
@@ -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)"