Qual é o problema?.
não é uma data fixa, é uma diferença da última alteração.
Os 99999 dias significam cerca de 273 anos de uso contínuo após a última vez que a senha foi alterada (ou inicialmente definida).
A última vez que uma senha foi alterada está relacionada ao horário do UNIX. Um valor assinado de 32 bits de segundos de January 1, 1970
. Esse é agora o contador padrão para o horário do UNIX. Com isso, o horário do UNIX precisará ser alterado antes de ultrapassar o ano (aproximadamente) 2038 (~ 19 / jan / 2038). Como o OpenBSD, o NetBSD e o x32 ABI para Linux já usam um time_t
de 64 bits, parece razoável esperar que ano 2038 um bit assinado de 64 bits será o contador padrão . Isso permitirá continuar contando por cerca de 292 giga anos adicionais, ou conforme explicado na parte do NTP:
The 64 bit second value is enough to provide unambiguous time representation until the universe goes dim.
A "última vez que uma senha foi alterada" é apenas o tempo do UNIX dividido por 24 horas, 60 minutos e 60 segundos. Hoje será:
$ echo $(( $(date +%s) / 24 / 60 / 60 ))
16837
Isso é uma redução de cerca de 16 bits (2 ^ 16 = 65536) do tempo do UNIX.
Em resumo, faça seu aplicativo poder usar um contador UNIX de 64 bits, e assim:
What is the problem?