Scinder chaine retournée par Now() sous C++ Builder 6

Résolu
wicmoi Messages postés 4 Date d'inscription samedi 5 février 2005 Statut Membre Dernière intervention 29 mars 2006 - 29 mars 2006 à 15:27
wicmoi Messages postés 4 Date d'inscription samedi 5 février 2005 Statut Membre Dernière intervention 29 mars 2006 - 29 mars 2006 à 22:24
La fonction Now(); sous c++ builder 6 retourne :

29/03/2006 15:16:53

Je voudrais obtenir dans 3 variables ( var1, var2, var3 ) les informations suivantes :

var1 : 03-2006
var2 : 29
var3 :15:16:53


Merci d'avance.

3 réponses

platon179 Messages postés 237 Date d'inscription lundi 20 mai 2002 Statut Membre Dernière intervention 22 juillet 2011 2
29 mars 2006 à 20:56
Salut

Tu peux utiliser la fonction sscanf. Oublie pas de faire un #include <cstdio> au début de ton programme... Le fonctionnement est le même que pour scanf, si tu connais : sscanf(buffer, format, var1, var2, ....);

Ex. : char test[] = "Le 118712";
char txt[20];
int nombre;

sscanf(test, "%s %i", txt, &nombre);

Bonne soirée @+
3
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
29 mars 2006 à 21:52
et le jour où l'utilisateur modifie ses params régionaux c'est badaboum, personne ne garantit qu'il n'utilisera pas l'affichage US ou autre.
Faites donc du vrai code au lieu de ces Buideries et autres trucs interprétés.

SYSTEMTIME sttm;
GetLocalTime(&sttm);
et voila tout est dans les membres de la struct SYSTEMTIME, vachement dur, hein.

ciao...
http://dev.winsysdev.com
BruNews, MVP VC++
3
wicmoi Messages postés 4 Date d'inscription samedi 5 février 2005 Statut Membre Dernière intervention 29 mars 2006
29 mars 2006 à 22:24
Merci a tous pour vos messages, j'ai trouver la solution parfaite, ... mais pas de la facon la plus simple ... ( G potasser les lignes de <time.h> entre autre :)

char* mois_literal[13]={"Janvier", "Fevrier", "Mars", "Avril", "Mai", "Juin",
"Juilliet", "Aout", "Septembre", "Octobre", "Novembre", "Décembre"};


int annee, mois, jour, secondes, minutes, heures;
TDate date = Now();
time_t timer1;
time(&timer1);
struct tm *newTime1;
newTime1 = localtime(&timer1);
annee = newTime1->tm_year; // Années depuis 1900...
mois = newTime1->tm_mon; // Années depuis Janvier ( 0 à 11 mois )
jour = newTime1->tm_mday; // Le jour ( là c'est le bon, lol )
heures = newTime1->tm_hour; // L'heure courante
minutes = newTime1->tm_min; // La minute courante
secondes = newTime1->tm_sec; // La seconde courante
// Le haricot magique :)
//DateToStr(Date()))
//Je ne sais pas ki est le 'Boulet' qui a eu l'idée de commencer a conter les
//année depuis 1900...
//Et Vlan dans le même genre, c'est tellement plus logique de commencer a *
//compter les mois depuis 0 au lieu de 1 ( Pour Janvier ) ...


Date_Dernier->Caption = "Dernier contrôle à "+IntToStr(heures)+"h"
+IntToStr(minutes)+"'"+IntToStr(secondes);


//Date_PC->Text = IntToStr(1900+annee)+"-"+IntToStr(1+mois);
//Jour_PC->Text = IntToStr(jour);
//Heure_PC->Text = IntToStr(heures)+"h"+IntToStr(minutes)+"'"
+IntToStr(secondes);



x2bf3's World
3
Rejoignez-nous