Worthwhile task shaving: Difference between revisions
Content added Content deleted
mNo edit summary |
(Added Wren) |
||
Line 69: | Line 69: | ||
6 hours n/a n/a 3 years 9 months 2 months 3 days |
6 hours n/a n/a 3 years 9 months 2 months 3 days |
||
1 day n/a n/a 5 years 1 year 3 months 1 week |
1 day n/a n/a 5 years 1 year 3 months 1 week |
||
</pre> |
|||
=={{header|Wren}}== |
|||
This is quite close to the original table but no cigar. |
|||
<lang ecmascript>import "./fmt" for Fmt |
|||
var shaved = [1, 5, 30, 60, 300, 1800, 3600, 21600, 86400] // time shaved off in seconds |
|||
var columns = ["1 SECOND", "5 SECONDS", "30 SECONDS", "1 MINUTE", "5 MINUTES", |
|||
"30 MINUTES", "1 HOUR", "6 HOURS", "1 DAY"] |
|||
var diy = 365.25 |
|||
var minute = 60 |
|||
var hour = minute * 60 |
|||
var day = hour * 24 |
|||
var week = day * 7 |
|||
var month = day * diy / 12 |
|||
var year = day * diy |
|||
var freq = [50 * diy, 5 * diy, diy, diy/7, 12, 1] // frequency per year |
|||
var mult = 5 // multiplier for table |
|||
var fmtTime = Fn.new { |t, interval| |
|||
t = t.floor |
|||
var pl = (t == 1) ? "" : "S" |
|||
Fmt.write("$-12s ", t.toString + " " + interval + pl) |
|||
} |
|||
Fmt.print("$93m", "HOW OFTEN YOU DO THE TASK") |
|||
Fmt.lprint("$-12s | $-12s $-12s $-12s $-12s $-12s $-12s", ["SHAVED OFF", "50/DAY", "5/DAY", "DAILY", "WEEKLY", "MONTHLY", "YEARLY"]) |
|||
System.print("-" * 93) |
|||
for (y in 0..8) { |
|||
Fmt.write("$-12s | ", columns[y]) |
|||
for (x in 0..5) { |
|||
var t = freq[x] * shaved[y] * mult |
|||
if (t < minute) { |
|||
fmtTime.call(t, "SECOND") |
|||
} else if (t < hour) { |
|||
fmtTime.call(t/minute, "MINUTE") |
|||
} else if (t < day) { |
|||
fmtTime.call(t/hour, "HOUR") |
|||
} else if (t < 14 * day) { |
|||
fmtTime.call(t/day, "DAY") |
|||
} else if (t < 9 * week) { |
|||
fmtTime.call(t/week, "WEEK") |
|||
} else if (t < year) { |
|||
fmtTime.call(t/month, "MONTH") |
|||
} else { |
|||
System.write(" " * 13) |
|||
} |
|||
} |
|||
System.print() |
|||
}</lang> |
|||
{{out}} |
|||
<pre> |
|||
HOW OFTEN YOU DO THE TASK |
|||
SHAVED OFF | 50/DAY 5/DAY DAILY WEEKLY MONTHLY YEARLY |
|||
--------------------------------------------------------------------------------------------- |
|||
1 SECOND | 1 DAY 2 HOURS 30 MINUTES 4 MINUTES 1 MINUTE 5 SECONDS |
|||
5 SECONDS | 5 DAYS 12 HOURS 2 HOURS 21 MINUTES 5 MINUTES 25 SECONDS |
|||
30 SECONDS | 4 WEEKS 3 DAYS 15 HOURS 2 HOURS 30 MINUTES 2 MINUTES |
|||
1 MINUTE | 2 MONTHS 6 DAYS 1 DAY 4 HOURS 1 HOUR 5 MINUTES |
|||
5 MINUTES | 10 MONTHS 4 WEEKS 6 DAYS 21 HOURS 5 HOURS 25 MINUTES |
|||
30 MINUTES | 6 MONTHS 5 WEEKS 5 DAYS 1 DAY 2 HOURS |
|||
1 HOUR | 2 MONTHS 10 DAYS 2 DAYS 5 HOURS |
|||
6 HOURS | 2 MONTHS 2 WEEKS 1 DAY |
|||
1 DAY | 8 MONTHS 8 WEEKS 5 DAYS |
|||
</pre> |
</pre> |