IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les r�ponses en temps r�el, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

Fonction renvoyant date et heure en C++


Sujet :

C++

  1. #1
    Membre averti
    Homme Profil pro
    Sans emplois
    Inscrit en
    Ao�t 2014
    Messages
    19
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activit� : Sans emplois
    Secteur : Industrie

    Informations forums :
    Inscription : Ao�t 2014
    Messages : 19
    Par d�faut Fonction renvoyant date et heure en C++
    Bonjour/Bonsoir � toutes et � tous.

    Voil�, comme dit dans le titre, je cherche � cr�er une fonction qui me renverrais la date et l'heure au moment de l'ex�cution de la dite fonction.

    J'ai trouv� ce code en cherchant sur le net mais il me fait une erreur que je ne comprend pas trop bien.

    J'ai bien sur, plus ou moins, compris le fonctionnement de la fonction. Je sais que c'est la fonction en C, mais je trouve pas en C++ (je sais que pour le C++ il faut un include <ctimes>, mais j'ai pas encore vraiment regard� cette piste l�).

    Je vous donne le code de la fonction, inutile de me dire que c'est un void, je le sais:

    Code : 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
     
    void coreUtil::isTime()
    {
    	//Renvois l'heure et le jour d'utilisation de la fonction
     
    	/* lire l'heure courante */
    	time_t now = time(NULL);
     
    	/* la convertir en heure locale */
    	struct tm tm_now = *localtime(&now);
     
    	/* Creer une chaine JJ/MM/AAAA HH:MM:SS */
    	char s_now[sizeof "JJ/MM/AAAA HH:MM:SS"];
     
    	strftime(s_now, sizeof s_now, "%d/%m/%Y %H:%M:%S", &tm_now);
     
    	return;
    }
    Et voici l'erreur.

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
     
    c:\users\anubisas\dropbox\mes_projets\anucore_wip_1\anucore\anucore\core_utils.cpp(20): error C4996: 'localtime': This function or variable may be unsafe. Consider using localtime_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
      c:\program files\windows kits\10\include\10.0.10240.0\ucrt\time.h(505): note: voir la déclaration de 'localtime'
    Quelqu'un pourrait il e dire ce qui ne tourne pas rond dans cette fonction et comment je puis renvoyer la valeur trouv�e, soit en char ou string?

    Merci d'avance, Anubisas.

  2. #2
    Mod�rateur

    Avatar de Bktero
    Homme Profil pro
    Ing�nieur d�veloppement logiciels
    Inscrit en
    Juin 2009
    Messages
    4 493
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 38
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activit� : Ing�nieur d�veloppement logiciels

    Informations forums :
    Inscription : Juin 2009
    Messages : 4 493
    Billets dans le blog
    1
    Par d�faut
    As-tu test�e ta fonction ?

    As-tu compris le message de ton compilateur ?

  3. #3
    Membre averti
    Homme Profil pro
    Sans emplois
    Inscrit en
    Ao�t 2014
    Messages
    19
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activit� : Sans emplois
    Secteur : Industrie

    Informations forums :
    Inscription : Ao�t 2014
    Messages : 19
    Par d�faut
    Citation Envoy� par Bktero Voir le message
    As-tu test�e ta fonction ?

    As-tu compris le message de ton compilateur ?
    Avant tout, merci d'avoir r�pondu. Ensuite, oui, j'ai test� la fonction en question. Sinon, je n'aurais pas eu le message d'erreur.

    Enfin, j'ai traduis le message d'erreur qui me dit que la variable peut �tre dangereuse et qu'il faudrait que je pense � utiliser la fonction localtime_s.

    Cependant, j'ai essayer plusieurs m�thode trouv�e en fouillant sur le net mais je ne trouve pas la solution.

    Je continue bien sur mes recherches sur le net. Pour le moment, j'en suis revenu � l'utilisation de ce code qui me donne bien les infos qu'il me faut, voici le code en question:

    Code : 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
     
    void Date()
    {
     
    	SYSTEMTIME Time;
     
    	GetLocalTime(&Time);
     
    	printf("%02d/%02d/%04d ",
    		Time.wDay, Time.wMonth, Time.wYear);
     
    	printf("- %02d:%02d\n",
    		Time.wHour, Time.wMinute);
     
    	return;
     
    }
    Cependant, je ne sais toujours pas int�grer l'information envoyer � printf dans une variable afin de la retourn� par la fonction.Pour le moment printf me donne l'impression console "07/01/2017 - 22:57", c'est �a que je souhaiterais mettre dans une variable pour pouvoir le renvoyer � l'appelant de la fonction Date().

    Si j'ai rat� quelques chose ou ne suis pas clair, je sais pas quoi faire de plus.

    Mais je remercie toutes personne pouvant m'aider � ce sujet.

  4. #4
    Expert confirm�
    Homme Profil pro
    Ing�nieur d�veloppement mat�riel �lectronique
    Inscrit en
    D�cembre 2015
    Messages
    1 599
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 62
    Localisation : France, Bouches du Rh�ne (Provence Alpes C�te d'Azur)

    Informations professionnelles :
    Activit� : Ing�nieur d�veloppement mat�riel �lectronique
    Secteur : High Tech - �lectronique et micro-�lectronique

    Informations forums :
    Inscription : D�cembre 2015
    Messages : 1 599
    Par d�faut
    Bonjour,

    Ta fonction doit retourner une cha�ne de caract�res, hors ta fonction ne retourne rien (void c'est rien).
    Ton code c'est du C � 100%, hors tu veux du C++.
    Tu peux utiliser la fonction localtime_s (standard C11) ou GetLocalTime (standard Windows) ou std::localtime (standard C++)
    En C++ on �crit plut�t:
    Code : 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
    #include <ctime>
    #include <sstream>
    #include <string>
    #include <iomanip>
     
    std::string Date()
    {
    	//Renvois l'heure et le jour d'utilisation de la fonction
     
    	/* lire l'heure courante */
    	std::time_t now = std::time(NULL);
     
    	/* la convertir en heure locale */
    	std:: tm tm_now;
    	localtime_s(&tm_now,&now);
     
    	/* Creer une chaine JJ/MM/AAAA HH:MM:SS */
    	std::stringstream ss;
    	ss << std::put_time( &tm_now, "%d/%m/%Y %H:%M:%S" );
     
            /* retourner la chaine */
    	return ss.str();
    }

  5. #5
    Membre averti
    Homme Profil pro
    Sans emplois
    Inscrit en
    Ao�t 2014
    Messages
    19
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activit� : Sans emplois
    Secteur : Industrie

    Informations forums :
    Inscription : Ao�t 2014
    Messages : 19
    Par d�faut
    Un grand merci � toi dalfab, je viens juste de voir et de tester ton code, il tourne nikel et r�pond parfaitement � mes attentes. C'est tout simplement g�nial .

    Je vais pouvoir avancer dans mon logeur un peux plus loin.

    Un grand merci pour vos r�ponses, il me reste � moduler cela de diff�rente fa�ons afin de renvoyer l'heure seul, la date seul et bien sur les deux selon les besoin du moment.
    Je ne met pas encore le sujet en "r�solu" au cas o� j'ai de nouvelles demande � faire concernant cette fonction.

  6. #6
    R�dacteur/Mod�rateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 153
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 38
    Localisation : Canada

    Informations professionnelles :
    Activit� : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 153
    Billets dans le blog
    4
    Par d�faut
    Sinon le standard propose maintenant std::chrono::system_clock::now()
    Pensez � consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation r�seau ?
    Aucune aide via MP ne sera dispens�e. Merci d'utiliser les forums pr�vus � cet effet.

  7. #7
    Membre averti
    Homme Profil pro
    Sans emplois
    Inscrit en
    Ao�t 2014
    Messages
    19
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activit� : Sans emplois
    Secteur : Industrie

    Informations forums :
    Inscription : Ao�t 2014
    Messages : 19
    Par d�faut
    Voil�, tout est beau, tout est chaud... Mais... Il me reste un probl�me.

    Bon, j'ai bien ma cha�ne qui contient la date et l'heure, maintenant, je voudrais l'utiliser dans une MessageBox() et � l'inscrivant dans la zone cliente de la fen�tre.

    Cependant, apr�s plusieurs essais et sachant que je suis en une configuration UNICODE, j'obtiens les r�sultats suivant en image:

    Nom : Sans titre.png
Affichages : 3682
Taille : 43,4 Ko

    Ca, c'est en copiant le code trouv� dans le tuto des API dans ici (http://chgi.developpez.com/windows/hdc/).

    Quand j'essaye d'utiliser la variable qui contiens ma date et mon heure, il me dit qu'il y � un probl�me de conversion de type.

    EDIT:

    Je viens de changer la configuration UNICODE afin de ne plus utiliser le L devant mes cha�nes.

    EDIT:

    C'est bon, j'ai trouv� ^^

  8. #8
    R�dacteur/Mod�rateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 153
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 38
    Localisation : Canada

    Informations professionnelles :
    Activit� : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 153
    Billets dans le blog
    4
    Par d�faut
    Pour convertir les cha�nes std::codecvt avec std::wstring_convert.
    De nombreux exemples existent sur ce forum-m�me en cherchant ces termes.
    Pensez � consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation r�seau ?
    Aucune aide via MP ne sera dispens�e. Merci d'utiliser les forums pr�vus � cet effet.

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. [Dates] fonction date et heure toujours actualis�e
    Par Levava dans le forum Langage
    R�ponses: 3
    Dernier message: 01/06/2008, 13h43
  2. quelle est la fonction qui retourne la partie date sans heure
    Par solawe dans le forum MS SQL Server
    R�ponses: 4
    Dernier message: 29/08/2007, 15h23
  3. Fonction de domaine - Calcul de cumul avec filtre "date et heure".
    Par Fabrice7627 dans le forum Requ�tes et SQL.
    R�ponses: 8
    Dernier message: 25/08/2007, 05h16
  4. [SQL] Fonction de date et heure
    Par dudezerff dans le forum PHP & Base de donn�es
    R�ponses: 8
    Dernier message: 20/07/2007, 09h47
  5. Fonction qui trouve l'heure et la date???
    Par snake77350 dans le forum C
    R�ponses: 6
    Dernier message: 28/04/2006, 14h45

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo