Agreed.
//gmtcalc $calc( 1547987696 + 86400*0)
//gmtcalc $calc( 1547987696 + 86400*181)
The first number displayed is calculating the gmt(N)'s time of day using % mod and // floor divide, and always shows 12:34:56, regardless of the time of year, and that's what $gmt(N) should do.
Instead, when the clock is set to January, $gmt(N) shows them as:
Sun Jan 20 12:34:56 2019
Sun Jul 20 13:34:56 2019
But using the same pair of $gmt(N)s during July shows the date strings as:
Sun Jan 20 11:34:56 2019
Sun Jul 20 12:34:56 2019
$gmt should not be leaping forward in the spring then falling back in the fall, and should always show the same time for the same N.
alias gmtcalc {
var %gmt $$1
var %day $calc(%gmt // 86400)
var %tmp $calc(%gmt % 86400)
var %hours $calc(%tmp // 3600)
var %mins $calc((%tmp - (%hours * 3600)) // 60 )
var %secs $calc(%tmp % 60)
echo -a days %day $+(%hours,:,%mins,:,%secs) vs $gmt($1)
}