From 64fd17f18e9adf2123895d26ba399db51d6f3a32 Mon Sep 17 00:00:00 2001 From: xfnw Date: Sat, 27 Jan 2024 15:22:14 -0500 Subject: [PATCH] week: create little script for parsing year week dates, since strptime and gnu date are seemingly incapable of this... --- bin/week | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100755 bin/week diff --git a/bin/week b/bin/week new file mode 100755 index 0000000..379fb55 --- /dev/null +++ b/bin/week @@ -0,0 +1,32 @@ +#!/usr/bin/env python3 + +import argparse +from datetime import date + +def _parsedate(inp: str): + fst = int(inp[:2]) + snd = int(inp[2:]) + + # week number cannot be more than 53, assume to be the year + if snd > 53: + year = snd + week = fst + else: + year = fst + week = snd + + # assume input is in the past + year += 2000 + if year > date.today().year: + year -= 100 + + out = date.fromisocalendar(year, week, 1) + return out.strftime('%Y-%m-%d %B') + +if __name__ == "__main__": + parser = argparse.ArgumentParser("year-week parse thing") + parser.add_argument("date") + args = parser.parse_args() + + print(_parsedate(args.date)) +