Worthwhile task shaving: Difference between revisions

Worthwhile task shaving in FreeBASIC
(→‎{{header|Vlang}}: Rename "Vlang" in "V (Vlang)")
(Worthwhile task shaving in FreeBASIC)
Line 14:
playfulness than rigid scientific accuracy.
 
 
=={{header|FreeBASIC}}==
{{trans|Wren}}
<syntaxhighlight lang="vbnet">'Rosetta Code problem: https://rosettacode.org/wiki/Worthwhile_task_shaving
'by Jjuanhdez, 02/2023
 
Dim As Integer shaved(0 To 8) = {1, 5, 30, 60, 300, 1800, 3600, 21600, 86400}
Dim As String columns(0 To 8) = {" 1 SECOND", " 5 SECONDS", "30 SECONDS", _
" 1 MINUTE", " 5 MINUTES", "30 MINUTES", " 1 HOUR", " 6 HOURS", " 1 DAY"}
Dim As Single diy = 365.25
Dim As Integer minuto = 60
Dim As Integer hora = minuto * 60
Dim As Integer dia = hora * 24
Dim As Integer semana = dia * 7
Dim As Integer mes = dia * diy \ 12
Dim As Integer anno = dia * diy
 
Dim As Integer freq(0 To 5) = {50 * diy, 5 * diy, diy, diy\7, 12, 1}
Dim As Integer y, x, t, mult = 5
 
Sub fmtTime(t As Single, interval As String)
t = Int(t + .5)
Dim As String pl = Iif(t = 1, "", "S")
Print Using " ## \ \"; t; interval & pl;
End Sub
 
Print Spc(34); "HOW OFTEN YOU DO THE TASK"
Print " SHAVED OFF | 50/DAY 5/DAY DAILY WEEKLY MONTHLY YEARLY"
Print String (92, "-")
For y = 0 To Ubound(columns)
Print Using "\ \ |"; columns(y);
For x = 0 To Ubound(freq)
t = freq(x) * shaved(y) * mult
If (t < minuto) Then
fmtTime (t, "SECOND")
Elseif (t < hora) Then
fmtTime (t/minuto, "MINUTE")
Elseif (t < dia) Then
fmtTime (t/hora, "HOUR")
Elseif (t < 14 * dia) Then
fmtTime (t/dia, "DAY")
Elseif (t < 9 * semana) Then
fmtTime (t/semana, "WEEK")
Elseif (t < anno) Then
fmtTime (t/mes, "MONTH")
Else
Print String (13, " ");
End If
Next
Print
Next</syntaxhighlight>
{{out}}
<pre> HOW OFTEN YOU DO THE TASK
SHAVED OFF | 50/DAY 5/DAY DAILY WEEKLY MONTHLY YEARLY
--------------------------------------------------------------------------------------------
1 SECOND | 1 DAY 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 3 MINUTES
1 MINUTE | 2 MONTHS 6 DAYS 1 DAY 4 HOURS 1 HOUR 5 MINUTES
5 MINUTES | 10 MONTHS 5 WEEKS 6 DAYS 22 HOURS 5 HOURS 25 MINUTES
30 MINUTES | 6 MONTHS 5 WEEKS 5 DAYS 1 DAY 3 HOURS
1 HOUR | 2 MONTHS 11 DAYS 3 DAYS 5 HOURS
6 HOURS | 2 MONTHS 2 WEEKS 1 DAY
1 DAY | 9 MONTHS 9 WEEKS 5 DAYS</pre>
 
=={{header|Julia}}==
2,131

edits