Quelle est la signification du 1er janvier 1601?
Cette structure est une valeur 64 bits représentant le nombre
d'intervalles de 100 nanosecondes depuis le 1er janvier 1601.Référence:http://msdn.microsoft.com/en-us/library/aa915351
pourquoi "depuis 1601"? Pourquoi pas unix time 1970 ou même 2000? Que puis-je faire avec la compatibilité des dates si lointaines?
Répondre à m'.
la Date ANSI définit le 1er janvier 1601 comme le jour 1, et est utilisé comme l'origine des dates COBOL entier. Cette époque est le début du précédent cycle de 400 ans des années bissextiles dans le calendrier grégorien, qui s'est terminé avec l'année 2000. comme vous pouvez le trouver dans wikipedia sous Julian_day entry.
plus loin:
- pourquoi le Win32 epoch Janvier 1, 1601
4 réponses
Parce que 1/1/1601 était le début de l'époque.
D'après Raymond Chen:
pourquoi le Win32 Date du 1er janvier 1601?
FILETIME
structure enregistre le temps sous forme d'intervalles de 100 nanosecondes depuis le 1er janvier 1601. Pourquoi cette date a-t-elle été choisie?le calendrier grégorien fonctionne sur un cycle de 400 ans, et 1601 est la première année du cycle qui était actif au moment Windows NT a été en cours de conception. En d'autres termes, il a été choisi pour faire le calcul sortent bien.
J'ai en fait le courriel de Dave Cutler qui confirme ceci.
Eh bien, le 1er janvier 1601 fut le premier jour du 17ème siècle. Et les horloges à pendule ont été inventées au XVIIe siècle, permettant de mesurer le temps avec une précision d'une seconde. Ainsi (en théorie) il pourrait y avoir des références dans la littérature existante de cette période aux points temporels mesurés avec cette précision.
Mais en réalité, le choix est arbitraire. Il doit y avoir une" époque", et pourvu
l'époque est assez ancienne pour que les valeurs de" temps négatif " soient rares, et
le wrap-around temps est assez loin dans le futur, à quelques générations d'écart,
n'importe quel choix faire.
mais bon, si ça t'inquiète tant que ça, envoie une lettre à Steve Balmer.
je suis enclin à croire la réponse de Ian Boyd. Et la raison en est qu'il rend les maths plus faciles (pour le calcul grégorien de l'année bissextile). Compte tenu de la petitesse de cette simplification et de la faiblesse du raisonnement derrière elle, elle est (OMI) "essentiellement" arbitraire. (Non pas que je dis que c'est faux ...)
C'est un choix pragmatique.
le calendrier occidental moderne n'a pas été cohérent avant 1752 lorsque la Grande-Bretagne (et ses colonies) a adopté le calendrier grégorien, qui avait été adopté dans la plupart de l'Europe catholique depuis 1582.
C'est le calendrier moderne avec les années bissextiles etc. pour garder le 1er janvier aligné avec le solstice d'hiver.
alors pourquoi ne pas commencer à partir du 1er janvier 1752? Parce que la règle de base de l'année bissextile " est une année bissextile si l'année à deux chiffres est divisible par quatre sauf si le siècle à quatre chiffres est également divisible par quatre") établi un cycle de 400 ans. Le premier cycle complet à partir du 1er janvier 1601, (au moins à Rome).
les calculs de l'année bissextile et de la date sont assez douloureux sans commencer à mi-chemin à travers un cycle de quatre cents ans donc 1600 est un bon début aussi longtemps que vous vous rappelez que toute date avant 1752 doivent être qualifiés par un emplacement géographique, comme les dates Britanniques étaient 10 jours hors de synchronisation. avec des dates romaines par ce temps.
comme il a déjà été mentionné, je pense que la réponse populaire est que le calendrier grégorien fonctionne sur un cycle de 400 ans, et 1601 est la première année du cycle qui était actif au moment où Windows NT a été conçu.
Janvier 1, 1601 est l'origine des dates COBOL entier.
c'est aussi le jour 1 selon le format ANSI date.
Et si vous spéculer plus selon ISO8601 qui est le format dans lequel il est, avant 1583 temps était basée sur la calendrier gregorien qui a 366 jours par an. Peut-être ils ont juste arrondi au prochain siècle.