Text processing/Max licenses in use: Difference between revisions

Adding a TXR version of this task.
m (Replaced "maxTimes = @[]" with the likely more efficient "maxTimes.setLen(0)".)
(Adding a TXR version of this task.)
Line 2,661:
The max. number of licences out is 99
at these times: 2008/10/03_08:39:34 2008/10/03_08:40:40
</pre>
 
=={{header|TXR}}==
Working with Version 266.
<lang TXR>
@(bind *times* #H((:eql-based) nil))
@(bind *licenses-out* 0)
@(bind *maximum-licenses-out* 0)
@(collect)
License @statuses @@ @dateTimes for job @jobNumbers
@(end)
@(do (each ((status statuses)
(dateTime dateTimes)
(jobNumber jobNumbers))
(set *licenses-out*
(if (equal status "OUT")
(progn
(when (>= (+ *licenses-out* 1) *maximum-licenses-out*)
(set *maximum-licenses-out* (+ *licenses-out* 1))
(pushhash *times* *maximum-licenses-out* dateTime))
(+ *licenses-out* 1))
(+ *licenses-out* -1)))))
@(output)
Maximum # of licenses out: @{*maximum-licenses-out*}
Peak time(s): @{(reverse (gethash *times* *maximum-licenses-out*))}
@(end)
</lang>
Output:
<pre>
Maximum # of licenses out: 99
Peak time(s): 2008/10/03_08:39:34 2008/10/03_08:40:40
</pre>