CALCULER LE TIMESTAMP

Messages postés
968
Date d'inscription
samedi 3 avril 2004
Statut
Membre
Dernière intervention
4 mars 2010
- - Dernière réponse : hazkaal
Messages postés
67
Date d'inscription
dimanche 4 février 2007
Statut
Membre
Dernière intervention
4 novembre 2008
- 24 août 2008 à 15:28
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/47705-calculer-le-timestamp

Afficher la suite 
hazkaal
Messages postés
67
Date d'inscription
dimanche 4 février 2007
Statut
Membre
Dernière intervention
4 novembre 2008
-
C'est cool, j'apprend plein de chose :p
Oui Brunews on peu... BRAVO

L'utilisé d'une telle source ?
"Je pense que cet algorithme peut être pratique pour ceux qui veulent créer un "mini systeme d'exploitation" pour à partir de ce timestamp créer une horloge système et retrouver n'importe quelle date exacte juste en enregistrant le timestamp."
Ou peut être un agenda ?

J'en sait rien, je vais essayer d'améliorer ma source en restant dans l'algo que j'ai monté, BRUNEWS, je met ton code aussi !
Neo_Fr
Messages postés
653
Date d'inscription
mardi 6 décembre 2005
Statut
Membre
Dernière intervention
10 novembre 2014
2 -
Je l'ai pensser plus tard et je l'ai poster sur codyx on peut meme remplacer GetSystemTime, par GetSystemTimeAsFileTime..

Neo_Fr
BruNews
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
13 -
La valeur du 01/01/1970 ayant peu de chance de varier, on peut résumer la source à cela:
DWORD __stdcall GetTimeStamp(void)
{
SYSTEMTIME stTime;
FILETIME flTime;
QWORD qwSystemTime;
GetSystemTime(&stTime);
SystemTimeToFileTime(&stTime, &flTime);
qwSystemTime = *((QWORD*) &flTime);
return (DWORD) ((qwSystemTime - 0x19DB1DED53E8000) / 10000000);
}

se pose maintenant l'utilité d'une telle source.
cs_juju12
Messages postés
968
Date d'inscription
samedi 3 avril 2004
Statut
Membre
Dernière intervention
4 mars 2010
4 -
EHO
ce que j'ai appelé bIsYearBissextile était une variable et pas une fonction!
l'important était t.wYear%4
Neo_Fr
Messages postés
653
Date d'inscription
mardi 6 décembre 2005
Statut
Membre
Dernière intervention
10 novembre 2014
2 -
Une version plus simple avec les apis:

typedef unsigned __int64 QWORD;

DWORD __stdcall GetTimeStamp(void)
{
SYSTEMTIME stTime;
FILETIME flTime;
QWORD qwSystemTime;
QWORD qwUnixTime;
DWORD dwTimeStamp;
GetSystemTime(&stTime);
SystemTimeToFileTime(&stTime, &flTime);
qwSystemTime = *((QWORD*) &flTime);
ZeroMemory(&stTime, sizeof(SYSTEMTIME));
stTime.wYear = 1970;
stTime.wMonth = 1;
stTime.wDay = 1;
SystemTimeToFileTime(&stTime, &flTime);
qwUnixTime = *((QWORD*) &flTime);
dwTimeStamp = ((qwSystemTime-qwUnixTime) / 10000000);
return dwTimeStamp;
}

int main(void)
{
printf("%i\n", GetTimeStamp());
system("PAUSE");
return 0;
}

Neo_Fr