# HG changeset patch # User HackEso # Date 1568727178 0 # Node ID 4642242a79457b886456dc1da5b8d64573b95d3d # Parent e48305a84ee8808e59cc02e9ad61a38a6078dbde fetch bin/beat https://hack.esolangs.org/get/bin/beat diff -r e48305a84ee8 -r 4642242a7945 bin/beat --- 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)