Unixtimestamp = Sekunden seit 1.1.1970 00:00:00 UTC
Unixtimestamp = Integer
Max(Integer) = 2.147.483.647
1 Jahr = 31.556.926 Sekunden (365,24 Tage)
2.147.483.647 / 31.556.926 = 68,051103805231219289229882530383
1.1.1970 + 68 = ca. 2037 bis zum Überlauf.
Wenn ich die zitierte Quelltextzeile recht verstehen, müsste die Berechnung aber, soweit LongInt größer oder kleiner als 4 Byte groß ist, funktionieren.
Definiere doch LongInt mal um, z. B. auf LongInt = Byte. Dann sollte das doch gehen oder?
Ok, das ist jetzt böse, aber:
Der Sinn der zitierten Quelltextzeile erscheint mir doch eher fraglich. Und wenn daraus "nicht näher zu ergründende" Folgefehler resultieren, scheint mir das eher wahrscheinlich.