Mercurial > repo
annotate bin/beat @ 12292:d51f2100210c draft
<kspalaiologos> `` cat <<<"asmbf && bfi output.b" > /hackenv/ibin/asmbf
author | HackEso <hackeso@esolangs.org> |
---|---|
date | Thu, 02 Jan 2020 15:38:21 +0000 |
parents | 4642242a7945 |
children |
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 |