aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--distamp.ha32
1 files changed, 32 insertions, 0 deletions
diff --git a/distamp.ha b/distamp.ha
new file mode 100644
index 0000000..6a60668
--- /dev/null
+++ b/distamp.ha
@@ -0,0 +1,32 @@
+use fmt;
+use time;
+use time::date;
+use time::chrono;
+use os;
+use strconv;
+use strings;
+
+export fn main() void = {
+ if (len(os::args) != 2) {
+ os::exit(os::status::FAILURE);
+ };
+
+ let timestr = os::args[1];
+ let i = time::now(time::clock::REALTIME);
+ let spl = strings::split(timestr, ":");
+
+ let li = if (len(spl) > 2) {
+ fmt::fatal("Duration format: m or m:s");
+ } else if (len(spl) == 2) {
+ let m = strconv::stoi64(spl[0])!;
+ let s = strconv::stoi64(spl[1])!;
+ let d = (m * time::MINUTE) + (s * time::SECOND);
+ yield time::add(i, d);
+ } else {
+ let m = strconv::stoi64(spl[0])!;
+ let d = m * time::MINUTE;
+ yield time::add(i, d);
+ };
+
+ fmt::printfln("<t:{}:R>", time::unix(li))!;
+};