annotate bin/beat @ 11941:e48305a84ee8 draft

<wob_jonas> fetch bin/beat https://hack.esolangs.org/get/bin/beat
author HackEso <hackeso@esolangs.org>
date Fri, 13 Sep 2019 12:14:45 +0000
parents 35d17fa5d3ba
children 4642242a7945
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
11940
35d17fa5d3ba <wob_jonas> fetch bin/beat https://hack.esolangs.org/get/bin/beat
HackEso <hackeso@esolangs.org>
parents: 11939
diff changeset
1 #!/usr/bin/python3
11939
d1bee51ebc7e <wob_jonas> fetch bin/beat https://hack.esolangs.org/get/bin/beat
HackEso <hackeso@esolangs.org>
parents: 11937
diff changeset
2 # beat - print current time in Swatch Internet Time format.
d1bee51ebc7e <wob_jonas> fetch bin/beat https://hack.esolangs.org/get/bin/beat
HackEso <hackeso@esolangs.org>
parents: 11937
diff changeset
3 # blame fizzie
d1bee51ebc7e <wob_jonas> fetch bin/beat https://hack.esolangs.org/get/bin/beat
HackEso <hackeso@esolangs.org>
parents: 11937
diff changeset
4 import math,sys,getopt,time
d1bee51ebc7e <wob_jonas> fetch bin/beat https://hack.esolangs.org/get/bin/beat
HackEso <hackeso@esolangs.org>
parents: 11937
diff changeset
5 prec = 0
d1bee51ebc7e <wob_jonas> fetch bin/beat https://hack.esolangs.org/get/bin/beat
HackEso <hackeso@esolangs.org>
parents: 11937
diff changeset
6 opts,args = getopt.getopt(sys.argv[1:], "hpP:")
d1bee51ebc7e <wob_jonas> fetch bin/beat https://hack.esolangs.org/get/bin/beat
HackEso <hackeso@esolangs.org>
parents: 11937
diff changeset
7 for opt,oarg in opts:
d1bee51ebc7e <wob_jonas> fetch bin/beat https://hack.esolangs.org/get/bin/beat
HackEso <hackeso@esolangs.org>
parents: 11937
diff changeset
8 if "-p" == opt: prec = 2
d1bee51ebc7e <wob_jonas> fetch bin/beat https://hack.esolangs.org/get/bin/beat
HackEso <hackeso@esolangs.org>
parents: 11937
diff changeset
9 elif "-P" == opt: prec = int(oarg)
d1bee51ebc7e <wob_jonas> fetch bin/beat https://hack.esolangs.org/get/bin/beat
HackEso <hackeso@esolangs.org>
parents: 11937
diff changeset
10 elif "-h" == opt: print("Usage: beat [-p]\nPrint current time in Swatch Internet Time format."); sys.exit(2)
d1bee51ebc7e <wob_jonas> fetch bin/beat https://hack.esolangs.org/get/bin/beat
HackEso <hackeso@esolangs.org>
parents: 11937
diff changeset
11 else: raise AssertionError()
d1bee51ebc7e <wob_jonas> fetch bin/beat https://hack.esolangs.org/get/bin/beat
HackEso <hackeso@esolangs.org>
parents: 11937
diff changeset
12 if args:
d1bee51ebc7e <wob_jonas> fetch bin/beat https://hack.esolangs.org/get/bin/beat
HackEso <hackeso@esolangs.org>
parents: 11937
diff changeset
13 raise RuntimeError("too many command-line arguments")
d1bee51ebc7e <wob_jonas> fetch bin/beat https://hack.esolangs.org/get/bin/beat
HackEso <hackeso@esolangs.org>
parents: 11937
diff changeset
14 b = math.floor(((time.time()+3600) % 86400) / 86.4 * 10**prec)
d1bee51ebc7e <wob_jonas> fetch bin/beat https://hack.esolangs.org/get/bin/beat
HackEso <hackeso@esolangs.org>
parents: 11937
diff changeset
15 o = "%0*d" % (prec, b)
d1bee51ebc7e <wob_jonas> fetch bin/beat https://hack.esolangs.org/get/bin/beat
HackEso <hackeso@esolangs.org>
parents: 11937
diff changeset
16 if 0 < prec: o = o[0:-prec] + "." + o[-prec:]
d1bee51ebc7e <wob_jonas> fetch bin/beat https://hack.esolangs.org/get/bin/beat
HackEso <hackeso@esolangs.org>
parents: 11937
diff changeset
17 print(o)
d1bee51ebc7e <wob_jonas> fetch bin/beat https://hack.esolangs.org/get/bin/beat
HackEso <hackeso@esolangs.org>
parents: 11937
diff changeset
18 #END