bonjour a tous
j'aimerai connaitre le principe de trensformation du format date genre 09/08/2006 en format hex.
si quelqu'un peut m'eclairer se serai genial.
merci d'avance
bonjour a tous
j'aimerai connaitre le principe de trensformation du format date genre 09/08/2006 en format hex.
si quelqu'un peut m'eclairer se serai genial.
merci d'avance
C'est à toi de choisir comment tu veux encoder ta date en Hexa, il n'y a pas de règle. C'est juste une conversion decimale vers hexa, les anciens programmeurs qui devaient optimaliser la mémoire avaient des astuces pour gagner quelques bytes mais plus personne ne fait cela actuellement (malheureusement).
Si tu veux un conseil encode ta date sous la forme:
YYYYMMDD
YYYY = années sur 4 positions
MM = mois sur 2 positions
DD = jours sur 2 positions
Cela te permet de faire très simplement un tri sur la date, si tu utilises un autre format tu va devoir te casser la tête pour faire des tris corrects.
Pr²
Le principe du codage des dates en Hex peut-être propre à chaque système.
Un tableau pourrait être un peu plus explicite.
Certaines combinaisons donnent des dates farfelues, inexploitables pour gérer les cartes.
**************************************** ***************
Principe mathématique Ex. avec la valeur Héxadécimale 35 0A
en Binaire en obtient : 00110101 00001010
on récupère les 7 premiers bits pour l'année : 0011010
les 4 suivants pour le mois : 1000
et les 5 derniers pour le jour : 01010
0011010 = 0*64 + 0*32 + 1*16 + 1*8 + 0*4 + 1*2 + 0*1 = 16 + 8 + 2 = 26 on ajoute 1980 --> 2006
1000 = 1*8 + 0*4 + 0*2 + 0*1 = 8
01010 = 0*16 + 1*8 + 0*4 + 1*2 + 0*1 = 8 + 2 = 10
on obtient pour 35 0A la date du 10 août 2006.
Exemple pour coder dans l'autre sens :
00001 pour le premier du mois
0001 pour janvier
0011011 pour 2007
donc 0011011 0001 00001 ( 1er janvier 2007) donne en hexa 36 21.
**************************************** ***************
tableau :