C/Javascript ajouter un intervalle à une date

Fermé
toroxbox Messages postés 4 Date d'inscription mardi 18 septembre 2012 Statut Membre Dernière intervention 19 septembre 2012 - 18 sept. 2012 à 17:16
toroxbox Messages postés 4 Date d'inscription mardi 18 septembre 2012 Statut Membre Dernière intervention 19 septembre 2012 - 19 sept. 2012 à 15:12
Bonjour,

En C ou en Javascript, je souhaiterai ajouter un nombre d'heures/minutes/secondes à une date ainsi :

intervalle = "49:10:00" (soit 49h et 10m)
heure = "29/09/2012 00:37:29"

resultat_souhaité = "01/10/2012 01:47:29"

Remarque (et pas des moindres ...) : les librairies ne sont pas autorisées -_''' ce qui laisse pensé que la gestion du calendrier est C est quasiment infaisable ...

La demande est un peu large, mais qui sait, peut etre tomberais je sur une ou plusieurs ames charitables :o)

Merci d'avance à tous.
Torox
A voir également:

4 réponses

seo610 Messages postés 596 Date d'inscription mardi 9 février 2010 Statut Membre Dernière intervention 30 juin 2015 102
19 sept. 2012 à 00:53
Techniquement, c'est faisable en C sans bibliothèques si on prend en considération qu'il n'y au aucune input/output et que la date est fournie avec une variable dans le programme. Sinon, le mieux c'est tricher un peu et utiliser stdio pour de beaux printf et time.h pour les belles fonctions de date et d'heure.

En javascript, je sais pas trop comment ça marche avec les bibliothèques, mais je suis quasiment sur que si c'est un exercice, ça serait stupide de demander d'écrire un programme avec du javascrpit ou du C sans pouvoir utiliser des fonctions d'input/output et au moins une fonction pour avoir la date locale ou l'heure d'Unix.
0
Freedomsoul Messages postés 509 Date d'inscription lundi 9 mai 2011 Statut Membre Dernière intervention 17 avril 2013 97
19 sept. 2012 à 08:56
Pour le javascript, j'ai trouvé ça qui peut etre intéressant:

Plutot intéressant ! =>
http://www.codingforums.com/showthread.php?t=3955

Voilà, bonne continuation
0
Utilisateur anonyme
19 sept. 2012 à 09:06
Bonjour

Il n'y a strictement aucune difficulté à faire cette opération.
Avec les instructions de base, que ce soit en C ou en javascript, tu peux extraire facilement les heures, minutes, secondes, etc... qui sont à des positions fixes. Et même s'ils ne sont pas à des positions fixes, il est facile de détecter les : et / qui séparent les éléments.
Ensuite, si c'est en C, il faut traduire les chaînes de 2 caractères en nombres, c'est élémentaire. En javascript le problème ne se pose pas.
Ensuite il est facile d'ajouter les secondes ensemble, les minutes et les heures aussi.
Ensuite, il est facile de reporter le dépassement de 60 s vers les minutes s'il y a lieu, les dépassements de 60 minutes vers les heures s'il y a lieu, etc...
Ensuite, en retraduit les nombres en chaînes et on concatène le tout en insérant des / : et espaces aux bons endroits.

Chacune de ces opérations est très élémentaire et ne présente aucune difficulté. C'est un peu long peut-être, mais très facile.
En fait, c'est exactement ce qu'on ferait à la main, avec en plus les traductions ASCII <-> numérique.
0
toroxbox Messages postés 4 Date d'inscription mardi 18 septembre 2012 Statut Membre Dernière intervention 19 septembre 2012
19 sept. 2012 à 11:57
Merci le père, cependant tu ne parles pas de la gestion des dates avec le passage des mois ... ce qui est plus compliqué ;)
0
Utilisateur anonyme
19 sept. 2012 à 14:47
EN effet, c'est très compliqué de savoir que janvier, mars... font 31j, avril, juin... 30 et février 28 ou 29 selon que l'année est bissextile ou pas !
0
toroxbox Messages postés 4 Date d'inscription mardi 18 septembre 2012 Statut Membre Dernière intervention 19 septembre 2012
19 sept. 2012 à 12:08
Merci à tous pour vos interventions sur mon sujet.

@seo610 : non ce n'est pas un exercice :o)

La nuit porte conseil, j'ai une idée de solution :
- convertir intervalle en seconde (meme principe que ceux avancés par le père)
- convertir la date_heure en UTC
- additionner les deux
- reconvertir la date UTC en format date_heure
- bingo ^^

@le_père : j'aimerai que tu m'expliques comment tu gère le passage de mois à mois avec tes rudiments, enfin ceux que tu présentes si nonchalamment ...

je communiquerai le code ici si j'arrive à mes fins ;)
0
Utilisateur anonyme
19 sept. 2012 à 14:54
Euh... tu as écrit les librairies ne sont pas autorisées.
Tu convertis date_heure en UTC et réciproquement sans bibliothèque ???

Pour ce qui est du changement de mois, je ne vois même pas où il y a besoin d'une explication. Tout le monde sait le faire de tête, le seul petit problème étant les 29 février inexistant les années comme 1700,1800,1900,2100,2200...
0
toroxbox Messages postés 4 Date d'inscription mardi 18 septembre 2012 Statut Membre Dernière intervention 19 septembre 2012
19 sept. 2012 à 15:12
le petit problème n'est pas si petit ;o)

il se trouve que la date_heure est déjà en UTC, j'ai juste ajouté l'intervalle avec un in() et voilou.

t'es vraiment sympas en tout cas ... salut merci à tous!
0