annotate bin/beat @ 12256:821155c00e34 draft

<fizzie> ` sed -e \'s|wisdom|bin|\' < ../bin/culprits > ../bin/cblprits; chmod a+x ../bin/cblprits
author HackEso <hackeso@esolangs.org>
date Sat, 07 Dec 2019 23:36:22 +0000
parents 4642242a7945
children
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
11942
4642242a7945 <wib_jonas> fetch bin/beat https://hack.esolangs.org/get/bin/beat
HackEso <hackeso@esolangs.org>
parents: 11941
diff changeset
6 atime = None
4642242a7945 <wib_jonas> fetch bin/beat https://hack.esolangs.org/get/bin/beat
HackEso <hackeso@esolangs.org>
parents: 11941
diff changeset
7 opts,args = getopt.getopt(sys.argv[1:], "d:hpP:")
11939
d1bee51ebc7e <wob_jonas> fetch bin/beat https://hack.esolangs.org/get/bin/beat
HackEso <hackeso@esolangs.org>
parents: 11937
diff changeset
8 for opt,oarg in opts:
11942
4642242a7945 <wib_jonas> fetch bin/beat https://hack.esolangs.org/get/bin/beat
HackEso <hackeso@esolangs.org>
parents: 11941
diff changeset
9 if "-d" == opt:
4642242a7945 <wib_jonas> fetch bin/beat https://hack.esolangs.org/get/bin/beat
HackEso <hackeso@esolangs.org>
parents: 11941
diff changeset
10 if "@" == oarg[0]:
4642242a7945 <wib_jonas> fetch bin/beat https://hack.esolangs.org/get/bin/beat
HackEso <hackeso@esolangs.org>
parents: 11941
diff changeset
11 atime = float(oarg[1:])
4642242a7945 <wib_jonas> fetch bin/beat https://hack.esolangs.org/get/bin/beat
HackEso <hackeso@esolangs.org>
parents: 11941
diff changeset
12 else:
4642242a7945 <wib_jonas> fetch bin/beat https://hack.esolangs.org/get/bin/beat
HackEso <hackeso@esolangs.org>
parents: 11941
diff changeset
13 raise RuntimeError("unknown date format")
4642242a7945 <wib_jonas> fetch bin/beat https://hack.esolangs.org/get/bin/beat
HackEso <hackeso@esolangs.org>
parents: 11941
diff changeset
14 elif "-p" == opt: prec = 2
11939
d1bee51ebc7e <wob_jonas> fetch bin/beat https://hack.esolangs.org/get/bin/beat
HackEso <hackeso@esolangs.org>
parents: 11937
diff changeset
15 elif "-P" == opt: prec = int(oarg)
11942
4642242a7945 <wib_jonas> fetch bin/beat https://hack.esolangs.org/get/bin/beat
HackEso <hackeso@esolangs.org>
parents: 11941
diff changeset
16 elif "-h" == opt:
4642242a7945 <wib_jonas> fetch bin/beat https://hack.esolangs.org/get/bin/beat
HackEso <hackeso@esolangs.org>
parents: 11941
diff changeset
17 print("Usage: beat [-p]\nPrint current time in Swatch Internet Time format.\n")
4642242a7945 <wib_jonas> fetch bin/beat https://hack.esolangs.org/get/bin/beat
HackEso <hackeso@esolangs.org>
parents: 11941
diff changeset
18 sys.exit(2)
11939
d1bee51ebc7e <wob_jonas> fetch bin/beat https://hack.esolangs.org/get/bin/beat
HackEso <hackeso@esolangs.org>
parents: 11937
diff changeset
19 else: raise AssertionError()
d1bee51ebc7e <wob_jonas> fetch bin/beat https://hack.esolangs.org/get/bin/beat
HackEso <hackeso@esolangs.org>
parents: 11937
diff changeset
20 if args:
d1bee51ebc7e <wob_jonas> fetch bin/beat https://hack.esolangs.org/get/bin/beat
HackEso <hackeso@esolangs.org>
parents: 11937
diff changeset
21 raise RuntimeError("too many command-line arguments")
11942
4642242a7945 <wib_jonas> fetch bin/beat https://hack.esolangs.org/get/bin/beat
HackEso <hackeso@esolangs.org>
parents: 11941
diff changeset
22 if atime is None:
4642242a7945 <wib_jonas> fetch bin/beat https://hack.esolangs.org/get/bin/beat
HackEso <hackeso@esolangs.org>
parents: 11941
diff changeset
23 atime = time.time()
4642242a7945 <wib_jonas> fetch bin/beat https://hack.esolangs.org/get/bin/beat
HackEso <hackeso@esolangs.org>
parents: 11941
diff changeset
24 b = math.floor(((atime + 3600) % 86400) / 86.4 * 10**prec)
11939
d1bee51ebc7e <wob_jonas> fetch bin/beat https://hack.esolangs.org/get/bin/beat
HackEso <hackeso@esolangs.org>
parents: 11937
diff changeset
25 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
26 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
27 print(o)
d1bee51ebc7e <wob_jonas> fetch bin/beat https://hack.esolangs.org/get/bin/beat
HackEso <hackeso@esolangs.org>
parents: 11937
diff changeset
28 #END