Может быть, вы могли бы избавиться от некоторых операторов if:
var timeTot = 1061911800; // for debug
var uyear = 1; // DODGE DIVIDE BY ZERO ERROR
var difference = 527040-525600 // you can name this differently
while (timeTot >= 525600 || timeTot >= 527040) {
timeTot -= 525600
if(uyear % 4 == 0) {
timeTot -= difference
}
uyear++
}
uyear -= 1; // UNDODGE DIVIDE BY ZERO
// uyear is 2018 ( 1/1/2019@00:00 UTC-6 )
Это тоже немного короче.
Хотя, теперь, когда я об этом думаю, выможно также описать это следующим образом:
var timeTot = 1061911800; // for debug
var uyear = 1; // DODGE DIVIDE BY ZERO ERROR
var difference = 527040-525600 // you can name this differently
var leaps = Math.floor(timeTot/527040) // amount of leap years
uyear = leaps + Math.floor((timeTot-leaps*527040)/525600)
Итак, сначала вы узнаете, сколько високосных лет было в timetTot, а затем выясните, сколько нормальных лет осталось после вычитания минутной длины високосных лет.,Я не проверял это, но думаю, что-то подобное также должно работать.