begin process at 2012 05 29 02:50:15
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C++ & C++ .NET

 > 

Linux

 > 

Autre

 > 

differnce entre deux dates de type: DD/MM/YYYY hh:mm:ss:msms:µsµs


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

differnce entre deux dates de type: DD/MM/YYYY hh:mm:ss:msms:µsµs

jeudi 30 décembre 2010 à 09:45:58 | differnce entre deux dates de type: DD/MM/YYYY hh:mm:ss:msms:µsµs

rimie_rimie




Bonjour,

j'ai deux dates de type 14/05/2010 15:30:05:20:05 cad DD/MM/YYYY hh:mm:ss:msms:µsµs.
cette information date est enregistrer comme chaine de caractere dans un tableau parceque elle est charger a partir d'un fichier .txt

je veux savoir comment calculer la difference entre ces deux dates et la différence sera en ms ou bien en s.... suivant un choix donner par l'utilisateur
j'ai essayé de faire un programme mais ça marche pas: je vais laisser la partie millisecondes et microsecondes pour apres je vais essayé tt d'abord de faire marcher mon programme jusqu au seconde
le voila merci de me dire ou est le probleme:

Code :
#include <stdio.h>
#include <time.h>

int main()
{
struct tm1,tm2;
char buf1[255], buf2[255];
double diff;

strptime("2001-11-12 18:31:01", "%Y-%m-%d %H:%M:%S", &tm1);
strftime(buf1, sizeof(buf1), "%d %b %Y %H:%M", &tm1);
puts(buf);
strptime("2001-11-13 05:31:01", "%Y-%m-%d %H:%M:%S", &tm2);
strftime(buf2, sizeof(buf2), "%d %b %Y %H:%M", &tm2);
puts(buf);
time_t T1= mktime(tm * tim);
time_t T2 = mktime(tm * tim);
diff = T2 - T1;
printf("la difference en secondes est:%d",diff);



return 0;
}
jeudi 30 décembre 2010 à 10:39:59 | Re : differnce entre deux dates de type: DD/MM/YYYY hh:mm:ss:msms:µsµs

buno

Administrateur CodeS-SourceS
Hello,
Plusieurs petite erreurs:

struct tm tm1,tm2;

// tu ne dis pas quelle struct

puts(buf);

// buf n'est pas connu

mktime(tm * tim); mktime(&tm1)

// tu copies le prototype, là... et tim n'est pas connu

Après, je ne suis pas sous Linux, donc je ne peux pas compiler (à cause de strptime)

@+
Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
Rejoignez mon réseau professionnel sur Viadeo
jeudi 30 décembre 2010 à 10:41:11 | Re : differnce entre deux dates de type: DD/MM/YYYY hh:mm:ss:msms:µsµs

buno

Administrateur CodeS-SourceS
Perso, je serais resté avec des char* et des coup de strtok() pour découper la chaine en morceaux

@+
Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
Rejoignez mon réseau professionnel sur Viadeo
jeudi 30 décembre 2010 à 12:09:06 | Re : differnce entre deux dates de type: DD/MM/YYYY hh:mm:ss:msms:µsµs

CptPingu

Administrateur CodeS-SourceS
Je reconnais le code du man que tu as mal recopié :p

Ce ne sont que des erreurs de copier coller, pas de soucis particuliers, à part pour ton printf ou tu as mis %d pour un double. (%d et %i sont pour des entiers, d'ou le résultat incohérent).
La fonction strptime n'est absolument pas standard, et si tu as bien lu le man, il te faut ajouter un define avant time.h

Code C/C++ :
#define _XOPEN_SOURCE

#include <stdio.h>
#include <time.h>

int main(void)
{
  struct tm tm1,tm2;
  char buf1[255], buf2[255];
  unsigned int diff;

  strptime("2001-11-12 18:31:01", "%Y-%m-%d %H:%M:%S", &tm1);
  strftime(buf1, sizeof(buf1), "%d %b %Y %H:%M", &tm1);
  puts(buf1);
  strptime("2001-11-13 05:31:01", "%Y-%m-%d %H:%M:%S", &tm2);
  strftime(buf2, sizeof(buf2), "%d %b %Y %H:%M", &tm2);
  puts(buf2);
  time_t t1 = mktime(&tm1);
  time_t t2 = mktime(&tm2);
  diff = t2 - t1;
  printf("La difference en secondes est: %u\n", diff);

  return 0;
}


________________________________________________________________________
Historique de mes créations, et quelques articles:
http://0217021.free.fr/portfolio
Merci d'utiliser Réponse acceptée si un post répond à votre question
jeudi 30 décembre 2010 à 14:34:55 | Re : differnce entre deux dates de type: DD/MM/YYYY hh:mm:ss:msms:µsµs

rimie_rimie

merci bien pour ta reponse, elle marche bien
maintenant je vais essayé d'effectué la difference en tenant compte des ms et des µs

merci de m'aider si je trouve probleme, je vais essayé de faire un programme pour cela
jeudi 30 décembre 2010 à 17:31:57 | Re : differnce entre deux dates de type: DD/MM/YYYY hh:mm:ss:msms:µsµs

rimie_rimie

je veux bien extraine la partie milliseconde et µs ms ça marche pas une deuxieme fois avec ce code:
#include <iostream>
#include <stdlib.h>
#include <unistd.h>
int main()
{
char m [20], texte[] = "2001-11-13 18:31:01:25:50";
int ms,micros, i = 0;

for (i=20; texte[i]!=':'; ++i)
{
// printf("%c", texte[i]);
m[i]=texte[i];
//pour convertir m[10] en nombre entier }

ms= atoi(m);

printf("\n");
printf ("%d", ms);

for (i=23; texte[i]!='\0'; ++i)
{
printf("%c", texte[i]);
m[i]=texte[i];

}
micros= atoi(m);
//printf ("%d ms et %d µs", ms, micros);*/

}

merci de me dire ou est l'erreur

jeudi 30 décembre 2010 à 19:13:13 | Re : differnce entre deux dates de type: DD/MM/YYYY hh:mm:ss:msms:µsµs

CptPingu

Administrateur CodeS-SourceS
Tu ne peux pas faire un atoi sur un début de tableau non initialisé !
Au mieux, il y a un 0 devant, et il te renvoie 0, au pire tu as une donnée aléatoire.

Une solution facile à ce problème (peut être pas la meilleur):
Code C/C++ :
#include <stdlib.h>
#include <unistd.h>
#include <stdio.h>
#include <string.h>

int main(void)
{
  char m[21] = {0};
  char texte[] = "2001-11-13 18:31:01:25:50";
  int ms = 0;
  int i = 0;

  memset(m, '0', 20);
  printf("%s\n", m);

  for (i = 20; texte[i] != ':'; ++i)
    m[i] = texte[i];

  ms = atoi(m);
  printf("%s %i\n", m, ms);

  return 0;
}


PS: Attention, iostream c'est du C++, pas du C. Pense à prendre un compilateur C, et non C++. Tu risques d'avoir des surprises dans certains cas...

________________________________________________________________________
Historique de mes créations, et quelques articles:
http://0217021.free.fr/portfolio
Merci d'utiliser Réponse acceptée si un post répond à votre question
vendredi 31 décembre 2010 à 00:47:43 | Re : differnce entre deux dates de type: DD/MM/YYYY hh:mm:ss:msms:µsµs

rimie_rimie

merci bien je vais essayé de l'integrer a mon grand code.


Cette discussion est classée dans : type, dates, mm, dd, yyyy


Répondre à ce message

Sujets en rapport avec ce message

DateTimePicker mettre la date au format yyyy-mm-dd [ par jer13mel ] Bonjour, Voici mon problème, je code en C++, j'ai besoin de récupérer la date d'un DateTimePicker au format yyyy-mm-dd car mon champ est de type dat Conversion string en date [ par jpeg ] j'aimerai convertir (en C++ standard, sans MFC) une chaine de caractère de n'importe quel format (DD/MM/YYYY ou DD/MM/YYYY hh:mm ou YYYYMMDD ou ....) liste chainée: type file d'attente [ par cunbreizh ] MAIDER! MAIDER!Votre texte ICIVotre texte ICIdébutant dans la prog en C. Je cherche à programmer de la manière la plus simple et basic possible une st Probleme avec la librairie <conio.h> et avec le type "float" en c++ [ par Rigel Io ] Salut, j'aurai besoin de vos conseils éclairé en c++. Je suis débutant et j'apprends encore sur les tutorials possible de trouver sur Internet, je pro Problème socket [ par bouba ] Voila, j'ai un problème d'envoi de structure. (Sous UNIX)J'ai une structure comme cellle-ci.struct SPDU_TYPE{ char SI; int LI; struct PARAM_TYPE PARAM Une fonction multi-type ? [ par TeLeTUbIz ] Ouah !!!J'ai cherché, scruté dans tout les coins, soulevé les montagnes,... mais je ne trouve pas solution à mon problème.En fait, je voudrais faire u type 128 bit [ par BornBanane ] Bonjourvoila je fait un projet de cryptage et je travail donc sur des grand chiffres et il me faudrait un type fesant 128 bit ( se comportant comme de SMTP [ par c2millet ] Bonjours à tousVoilà mon pb je fais un prog qui génère des envois auto. de mails. En fait j'arrive à envoyer mes mails ya pas de pb, (c en fait une pa Constructeur/destructeur [ par Ben0007 ] Hello,En en-tête d'un fichier .cpp je trouve #include blablabla, puis:/******************************************* Constructeur et Destructeur******** erreur de conversion du meme type [ par kikipounque ] je travaille avec les MFCj'ai declaré une variable privée "CBitmap m_Bitmap;"j'ai ensuite declaré un fonction :void Affecter_Bitmap(CBitmap bm, CSize


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 2,278 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales