Worthwhile task shaving: Difference between revisions

julia example
m (→‎{{header|Perl}}: column width adjustable)
(julia example)
Line 13:
This task can be made as trivial or as convoluted as you please, and should aim more for a little
playfulness than rigid scientific accuracy.
 
 
=={{header|Julia}}==
{{trans|Perl}}
<lang julia>shaved = [1, 5, 30, 60, 300, 1800, 3600, 21600, 86400]
columns = [" 1 Second", " 5 Seconds", "30 Seconds", " 1 Minute", " 5 Minutes", "30 Minutes", " 1 Hour", " 6 Hours", " 1 Day"]
diy, minute, hour, day, week = 365.25, 60, 60 * 60, 60 * 60 * 24, 60 * 60 * 24 * 7
month, year = day * diy / 12, day * diy
freq = [50 * diy, 5 * diy, diy, diy / 7, 12, 1]
 
fmt(t, interval) = rpad(lpad(Int(round(t)), 3) * " $interval" * (t > 1 ? "s" : ""), 15)
 
println(' '^34, "How Often You Do the Task\n")
foreach(s -> print(rpad(s, 15)), ["Shaved-off |", " 50/Day", " 5/Day", " Daily", " Weekly", " Monthly", " Yearly"])
println("\n", '-'^100)
 
for y in 1:9
row = lpad(columns[y] * " | ", 14)
for x in 1:6
t = freq[x] * shaved[y] * 5
row *= t < minute ? fmt(t, "Second") : t < hour ? fmt(t / minute, "Minute") : t < day ? fmt(t / hour, "Hour") :
t < day * 14 ? fmt(t / day, "Day") : t < week * 9 ? fmt(t / week, "Week") : t < year ? fmt(t / month, "Month") : " n/a "
end
println(row)
end
</lang>{{out}}
<pre>
How Often You Do the Task
 
Shaved-off | 50/Day 5/Day Daily Weekly Monthly Yearly
----------------------------------------------------------------------------------------------------
1 Second | 1 Days 3 Hours 30 Minutes 4 Minutes 1 Minute 5 Seconds
5 Seconds | 5 Days 13 Hours 3 Hours 22 Minutes 5 Minutes 25 Seconds
30 Seconds | 5 Weeks 3 Days 15 Hours 2 Hours 30 Minutes 2 Minutes
1 Minute | 2 Months 6 Days 1 Days 4 Hours 1 Hour 5 Minutes
5 Minutes | 10 Months 5 Weeks 6 Days 22 Hours 5 Hours 25 Minutes
30 Minutes | n/a 6 Months 5 Weeks 5 Days 1 Days 2 Hours
1 Hour | n/a n/a 2 Months 11 Days 2 Days 5 Hours
6 Hours | n/a n/a n/a 2 Months 2 Weeks 1 Days
1 Day | n/a n/a n/a 9 Months 9 Weeks 5 Days
</pre>
 
 
=={{header|Perl}}==
4,105

edits