Worthwhile task shaving: Difference between revisions
Content added Content deleted
No edit summary |
|||
Line 220: | Line 220: | ||
</pre> |
</pre> |
||
=={{header|Vlang}}== |
|||
{{trans|Wren}} |
|||
<lang vlang>import math |
|||
const ( |
|||
shaved = [1, 5, 30, 60, 300, 1800, 3600, 21600, 86400] // time shaved off in seconds |
|||
columns = ["1 SECOND", "5 SECONDS", "30 SECONDS", "1 MINUTE", "5 MINUTES", |
|||
"30 MINUTES", "1 HOUR", "6 HOURS", "1 DAY"] |
|||
diy = 365.25 |
|||
minute = 60 |
|||
hour = minute * 60 |
|||
day = hour * 24 |
|||
week = day * 7 |
|||
month = day * diy / 12 |
|||
year = day * diy |
|||
freq = [50 * diy, 5 * diy, diy, diy/7, 12, 1] // frequency per year |
|||
mult = 5 // multiplier for table |
|||
) |
|||
fn fmt_time(t f64, interval string) { |
|||
f := int(math.floor(t)) |
|||
mut s := interval |
|||
if f>1 { |
|||
s = '${interval}S' |
|||
} |
|||
print(' ${f:-2} ${s:-9}') |
|||
} |
|||
fn main(){ |
|||
title := 'HOW OFTEN YOU DO THE TASK' |
|||
println("${title:58}") |
|||
println('SHAVED OFF | 50/DAY 5/DAY DAILY WEEKLY MONTHLY YEARLY') |
|||
println([]string{init:'-',len:93}.join('')) |
|||
for y in 0..columns.len { |
|||
print('${columns[y]:-12} |') |
|||
for x in 0..6 { |
|||
t := freq[x] * shaved[y] * mult |
|||
if t < minute { |
|||
fmt_time(t, "SECOND") |
|||
} else if t < hour { |
|||
fmt_time(t/minute, "MINUTE") |
|||
} else if t < day { |
|||
fmt_time(t/hour, "HOUR") |
|||
} else if t < 14 * day { |
|||
fmt_time(t/day, "DAY") |
|||
} else if t < 9 * week { |
|||
fmt_time(t/week, "WEEK") |
|||
} else if t < year { |
|||
fmt_time(t/month, "MONTH") |
|||
} else { |
|||
print(' ') |
|||
} |
|||
} |
|||
println('') |
|||
} |
|||
}</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> |
|||
=={{header|Wren}}== |
=={{header|Wren}}== |