changeset 11942:4642242a7945 draft

<wib_jonas> fetch bin/beat https://hack.esolangs.org/get/bin/beat
author HackEso <hackeso@esolangs.org>
date Tue, 17 Sep 2019 13:32:58 +0000
parents e48305a84ee8
children 0ab22b542e31
files bin/beat
diffstat 1 files changed, 14 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/bin/beat	Fri Sep 13 12:14:45 2019 +0000
+++ b/bin/beat	Tue Sep 17 13:32:58 2019 +0000
@@ -3,15 +3,25 @@
 # blame fizzie
 import math,sys,getopt,time
 prec = 0
-opts,args = getopt.getopt(sys.argv[1:], "hpP:")
+atime = None
+opts,args = getopt.getopt(sys.argv[1:], "d:hpP:")
 for opt,oarg in opts:
-	if "-p" == opt: prec = 2
+	if "-d" == opt:
+		if "@" == oarg[0]:
+			atime = float(oarg[1:])
+		else:
+			raise RuntimeError("unknown date format")
+	elif "-p" == opt: prec = 2
 	elif "-P" == opt: prec = int(oarg)
-	elif "-h" == opt: print("Usage: beat [-p]\nPrint current time in Swatch Internet Time format."); sys.exit(2)
+	elif "-h" == opt: 
+		print("Usage: beat [-p]\nPrint current time in Swatch Internet Time format.\n")
+		sys.exit(2)
 	else: raise AssertionError()
 if args:
 	raise RuntimeError("too many command-line arguments")
-b = math.floor(((time.time()+3600) % 86400) / 86.4 * 10**prec)
+if atime is None:
+	atime = time.time()
+b = math.floor(((atime + 3600) % 86400) / 86.4 * 10**prec)
 o = "%0*d" % (prec, b)
 if 0 < prec: o = o[0:-prec] + "." + o[-prec:]
 print(o)