Bonjour à tous,
J'ai un entier qui représente le nombre de secondes depuis premier janvier 1970.
Je souhaiterais convertir en format string c'est a dire jj / mm / aaaa
Qui connais l'algorithme pour faire cette conversion ?
Bonjour à tous,
J'ai un entier qui représente le nombre de secondes depuis premier janvier 1970.
Je souhaiterais convertir en format string c'est a dire jj / mm / aaaa
Qui connais l'algorithme pour faire cette conversion ?
Il s'agit donc d'un POSIX timestamp (aussi appelé Unix Time, ou epoch seconds)
Etant donné que c'est le temps utilisé sous Unix, le plus simple c'est de regarder la méthode utilisée dans les systèmes Unix (généralement dans le fichier "gmtime.c")Je souhaiterais convertir en format string c'est a dire jj / mm / aaaa
Qui connais l'algorithme pour faire cette conversion ?
Code C : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49 #include <time.h> #include "gmtime.h" #define YEAR0 1900 /* the first year */ #define EPOCH_YR 1970 /* EPOCH = Jan 1 1970 00:00:00 */ #define SECS_DAY (24L * 60L * 60L) #define LEAPYEAR(year) (!((year) % 4) && (((year) % 100) || !((year) % 400))) #define YEARSIZE(year) (LEAPYEAR(year) ? 366 : 365) #define FIRSTSUNDAY(timp) (((timp)->tm_yday - (timp)->tm_wday + 420) % 7) #define FIRSTDAYOF(timp) (((timp)->tm_wday - (timp)->tm_yday + 420) % 7) #define TIME_MAX ULONG_MAX #define ABB_LEN 3 const int _ytab[2][12] = { { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 }, { 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 } }; struct tm * gmtime(register const time_t *timer) { static struct tm br_time; register struct tm *timep = &br_time; time_t time = *timer; register unsigned long dayclock, dayno; int year = EPOCH_YR; dayclock = (unsigned long)time % SECS_DAY; dayno = (unsigned long)time / SECS_DAY; timep->tm_sec = dayclock % 60; timep->tm_min = (dayclock % 3600) / 60; timep->tm_hour = dayclock / 3600; timep->tm_wday = (dayno + 4) % 7; /* day 0 was a thursday */ while (dayno >= YEARSIZE(year)) { dayno -= YEARSIZE(year); year++; } timep->tm_year = year - YEAR0; timep->tm_yday = dayno; timep->tm_mon = 0; while (dayno >= _ytab[LEAPYEAR(year)][timep->tm_mon]) { dayno -= _ytab[LEAPYEAR(year)][timep->tm_mon]; timep->tm_mon++; } timep->tm_mday = dayno + 1; timep->tm_isdst = 0; return timep; }
En faite, c'est de la programmation en script que je veux faire.
J'ai un pupitre Pro-face. je dois allé une variable dans un automate Schenider et affiché en format date/heure.
Salut
J'aurais tendance à dire qu'une année, c'est 365 jours*24 heures*60 minutes*60 secondes... tu rajoutes un jour pour les années bissextiles... ça va te donner l'année en cours, et le nombre de secondes depuis le début de l'année.
Reste plus qu'à diviser par 24*60*60 pour savoir quel jour de l'année on est...
Merci pseudocode
J'ai adapté ta fonction avec mon langage D-script. Et cela marche bien
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager