begin process at 2012 05 28 09:51:21
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C

 > 

Divers

 > 

Général

 > 

Avis pour manipuler horaire


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

Avis pour manipuler horaire

mercredi 25 avril 2007 à 14:41:27 | Avis pour manipuler horaire

Nixeus

Bonjour a tous,



Je developpe une petite appli en MFC, sous visual c++, qui doit aller récupérer un horaire sur une base de donnée, puis le comparer a l'heure actuelle. Je sais récupérer l'heure actuelle sans problème. J'ai juste besoin d'un conseil,  savoir, comment me conseillez vous de stocker mon horaire dans ma base de donnée ( afin que ma comparaison avec l'heure actuelle soit la plus simple possible ).

Actuellement, les dates a saisir dans ma base de donnée, sont sous forme CString ex : 14H36
Me conseillez vous de les "passer" en décimal, donc 14.6 ?

Note: Je récupere l'heure courant sous la forme d'un CSTRING du style hh:mm

Merci a tous !!! Bonne journée
mercredi 25 avril 2007 à 15:24:52 | Re : Avis pour manipuler horaire

BruNews

Administrateur CodeS-SourceS
Si seulement heure minute seconde, tu 'pack' dans un DWORD:
00HHMMSS
par décalages <<=
et ainsi comparaisons > ou < etx se font illico.

ciao...
BruNews, MVP VC++
mercredi 25 avril 2007 à 15:54:15 | Re : Avis pour manipuler horaire

Nixeus

A oui, registre a décallage, donc tu me conseilles, de packer mes deux horaires ( l'horaire actuel, et l'horaire sur la Base de donnée) dans un DWord, puis de comparer avec des décallage.

En fait, sur ma base de donnée, je récupere deux horaires ( 14H20 et 16H30)
Je doit savoir si l'horaire actuel ( ex : 15H54) est compris entre 14H20 et 16H30

Donc, avec ceci, tu me conseilles d'utiliser décallage ? Ou alors de passer en décimal?

Merci beaucoup!
mercredi 25 avril 2007 à 16:00:24 | Re : Avis pour manipuler horaire

BruNews

Administrateur CodeS-SourceS
Réponse acceptée !
Les entiers sont toujours plus rapides à traiter que les flottants.

DWORD dtime, v;
dtime = atoi(heure);
v = atoi(minute);
dtime << 16; // 0x00HH00
v <<= 8;
dtime |= v; // 0x00HHMM00
dtime |= atoi(seconde);

voila pour packer.
comparaisons
if(dt1 > dt2)
ou < ou ==, toutes valables.

ciao...
BruNews, MVP VC++
mercredi 25 avril 2007 à 16:07:44 | Re : Avis pour manipuler horaire

Nixeus

:)

Merci beaucoup, je vais tester tout ca, et donnerais des nouvelles dans la soirée, car beaucoup travail !
En tout cas, c'est appréciable d'avoir des MVP sur le forum :)
Surtout la petite touche des soucis d'allégement du code et de rapidité de code ( chose qu'on néglige de plus en plus aujourd'hui nous les jeunes avec nos bécannes cadencés a 3GHZ et vec 2MO de RAM), mais vous avez raison a mort !!

Encore merci !
mercredi 25 avril 2007 à 16:10:27 | Re : Avis pour manipuler horaire

Nixeus

Petite question, pour quoi ceci

dtime << 16; // 0x00HH00
v <<= 8;
 
Pourquoi <<16 et <<=8 ?
Merci
mercredi 25 avril 2007 à 16:15:13 | Re : Avis pour manipuler horaire

BruNews

Administrateur CodeS-SourceS

heure tient par force sur 1 octet, donc
atoi(heure) donne 0x000000HH
dtime << 16; // 0x00HH0000
logique non ?
Heure est donc dans octet 2.

Je mets minutes dans octet 1 pour ORer ensuite
et en finale on laisse secondes dans octet 0.

ciao...
BruNews, MVP VC++

mercredi 25 avril 2007 à 16:49:24 | Re : Avis pour manipuler horaire

Nixeus

Merci pour l'explication,


Je teste ca ce soir donc :)

vendredi 27 avril 2007 à 11:02:49 | Re : Avis pour manipuler horaire

Nixeus

Désolé de ne pas avoir pu répondre hier,


Je viens donc de regarder a tout cela , je voulais savoir si j'avais moyen de packer ca directement ? Car en réalité, ma fonction GetTime me retourne une CString de la forme HH:MM:SS . Donc puis-je "packer" directement cette CString en un DWORD, ou dois-je faire une traitement afin de découper cela en 3 CString , à savoir Heure, Minute, et Seconde ?

Enfin, quand tu parles de la comparaison avec DT1 et DT2 ( ->  if(dt1 > dt2) )
Dt1 et Dt2 sont mes 2 DWord correspondants a mes deux horaires ?

Merci beaucoup!

vendredi 27 avril 2007 à 13:54:41 | Re : Avis pour manipuler horaire

Nixeus

Ta méthode fonctionne impecablement bien BruNews !
Merci beaucoup !

J'ai bien vérifié si les comparaison d'horaires fonctionnais, et aparemment, tout fonctione !Encore merci

1 2

Cette discussion est classée dans : base, donnée, heure, horaire, actuelle


Répondre à ce message

Sujets en rapport avec ce message

Acceder à une base de donnée [ par anspauldou ] SalutJe voudrai avoir les étapes pour accéder à une base de données ACCESS 97 par code Visual C++ avec exemple à l'appui.Merci d'avance Base de donnée mais EXEL!! [ par Ben ] Bonjours,J' utilise BCB 5 Pro et je suis très content de ce logiciel ! Seulement maintensant, je dois accéder à une base de donné mais pas n' importe Access [ par bip54fl ] Comment faire une base de donnée sur access 2000 chez moi et lire cette de base de donnée sur access 97 à l'école ? base de donnée et UNICODE [ par hanafi ] bonjour tout le mondeje fais la connection avec la base de donnée avec VC++.ca marche impicable Mais Mais....quand j'ajoute dans l'envirenement Proje Lecture d'une base de donnée DBase IV en VC++ [ par Pits ] Bonjour,Je cherche à lire une base de donnée DBase IV en Visual C++. Est ce que c'est possible ?Si OUI, comment ?Merci. problemme d'ecriture dans une base de donnée DAO [ par itzahk ] Bonjour a tous,J'ai un petit problème avec une base de donnée DAO que je génére.Lorsque je fais: m_pSet->AddNew();il me renvoie le message comme quoi acces base de donnée DAO protégée par mot de passe [ par Frederyck ] Bonjour,Alors je voudrais savoir comment faire pour acceder à une base de donnée Access 97 via DAO quand celle ci est protégée par mot de passe.J'aime [BDD]lire une base de donnée faite en MySQL avec C++ [ par Bunk ] Bonjour à tous,J'ai un petit problème :Je suis en train de réaliser une galerie virtuelle avec des amis, et un petit problème nous bloque.Nous aimerio Base de donnée [ par LordBob ] Bonjour, je voudrai savoir ou je peux trouver un tuto sur la création et/ou l'utilisation de base de donnée en C/C++, car j'ai beau cherché je n'arri base de donnée : c++ ou windev ? [ par Sylarme ] Bonjour à tous je suis nouveau ici alors excusez ma question si elle a déjà été posée.En fait devant programmer un programme client/serveur en c++ ave


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

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 : 0,686 sec (4)

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