Apparemment DateTime.Ticks peut représenter le temps jusqu'au niveau de la nanoseconde, à partir de l'année 0001. Selon l'affiche ci-dessus, il faut 8 octets d'espace.
Cependant, pour obtenir une représentation minimale pour tous les micro-secondes de l'année 0000 à l'année 9999, vous pouvez le calculer comme suit:
9999 ans * 365 jours * 24 h * 60 min * 60 secondes * 1000000 microsecondes = 525547400000
ln (ci-dessus nombre)/ln (2) = 52,22274 .. - 53 bits
53 bits = 6,5 octets. Donc, vous pouvez enregistrer un octet en utilisant une représentation non-standard (en gros, vous économisez en n'ayant pas à représenter des nanosecondes). L'écriture des routines de conversion est assez simple. Il suffit de convertir chaque date, heure, milliseconde à la milliseconde appropriée entre le début de l'année 0000 et l'année 9999. Pour retrouver l'heure de la date, il suffit de faire le calcul inverse. C'est assez simple, vous devriez être capable de le comprendre.
Cependant, je doute fortement économiser 1 octet vaut le travail, les bugs potentiels, non-normalisation, maintenance, documentation, etc., etc.
Afin d'utiliser DateTime.Tick, je dois choisir un point fixe dans le temps, non? Existe-t-il une norme pour choisir ce point fixe dans le temps? – Lopper
@Lopper, NON vous n'avez pas besoin de choisir un point fixe dans le temps. System.DateTime l'a fait pour vous. – Portman
Ce que dit Portmain. Vous avez seulement besoin de choisir un point dans le temps si vous n'utilisez pas le standard. –