2008-12-01 10 views
3

J'ai un morceau de code en ANSI C qui utilise la bibliothèque time.h et les structures time_h à (entre autres calculs liés à la date) calculer l'intervalle entre deux dates données. Cela fonctionne bien mais cela limite mon code à l'entrée entre 1970 et 2038. Je voudrais maintenant rendre mon code plus général. Y at-il une bibliothèque C commune (norme ANSI ou C99) qui implémente des calculs de date sur des plages plus grandes que time.h, sur une granularité de 1 jour (ie j'ai besoin d'une résolution au jour mais une résolution d'heure n'est pas nécessaire)?time.h remplacement direct: time_t pour les valeurs (année <1970) et (année> 2038) en ANSI-C ou C99

(je suis adapter le code pour faire face à des événements historiques, il serait donc bien si elle pourrait aussi traiter avec des dates en Colombie-Britannique ....)

Répondre

3

Oui, le y2038 project réimplémente time.h pour être 2038 sûr. Jusqu'à présent, gmtime(), localtime(), mktime() et gmtime() sont réalisées et bien testées. C'étaient les morceaux durs. Il s'étend sur environ 300 milliards d'années dans les deux sens.

1

Il y a une mise en œuvre du domaine public utilisé dans SQLite: documentation, J'ai également trouvé le Calendar FAQ utile; La page this apparaît tôt sur Google.

Questions connexes