A voir également:
- Petit problème avec les dates !...
- Musique les petit mouchoirs enterrement ✓ - Forum Musique / Radio / Clip
- Petit colis distribution - Forum Consommation & Internet
- [Sujet Groupé] Shein livraison sans réception ✓ - Forum Consommation & Internet
- Musique d'enterrement ✓ - Forum Musique / Radio / Clip
- Excel trier du plus grand au plus petit - Guide
23 réponses
C pa difficile, dis moi quel language de programmation tu utilises?
Essayes de réfléchir encore sur ca, je préfére ne pas te donner la solution tt de suite
@bientot
Essayes de réfléchir encore sur ca, je préfére ne pas te donner la solution tt de suite
@bientot
PhP
Messages postés
1767
Date d'inscription
lundi 11 décembre 2000
Statut
Membre
Dernière intervention
23 décembre 2009
606
4 mars 2002 à 23:58
4 mars 2002 à 23:58
Bonsoir Orel
Delphi 4 propose les fonctions suivantes :
Date lit l'heure système.
Unité
SysUtils
Catégorie
routines de dates et d'heures
function Date: TDateTime;
Description
La fonction Date renvoie la date système.
-------------------------------------------------
DateToStr convertit une variable de type TDateTime en chaîne formatée.
Unité
SysUtils
Catégorie
routines de dates et d'heures
function DateToStr(Date: TDateTime): string;
Description
Utilisez DateToStr pour obtenir la représentation sous forme de chaîne d'une valeur date, dans le but de l'afficher. La conversion fait appel au format défini par la variable globale ShortDateFormat.
---------------------------
StrToDate convertit une chaîne en date.
Unité
SysUtils
Catégorie
routines de dates et d'heures
function StrToDate(const S: string): TDateTime;
Description
La date contenue dans la chaîne doit être valide.
La chaîne doit être constituée de deux ou trois nombres séparés par le caractère défini dans la variable globale DateSeparator. La séquence jour/mois/année est déterminée par la variable globale ShortDateFormat. Les combinaisons possibles sont MM/JJ/AA, JJ/MM/AA et AA/MM/JJ.
Si la chaîne contient uniquement deux nombres, la date est considérée comme faisant partie de l'année en cours (MM/JJ ou JJ/MM). Si la chaîne ne contient pas une date valide, une exception EConvertError est déclenchée.
Un format correct de date varie en fonction des valeurs de certaines constantes typées de date et d'heure.
Le format de la date varie quand les valeurs des variables de formatage date/heure sont modifiées.
La variable TwoDigitYearCenturyWindow contrôle l’interprétation des années sur deux chiffres. Si TwoDigitYearCenturyWindow est égale à 0, les années comprises entre 0 et 99 sont considérées comme faisant partie du siècle actuel. Si TwoDigitYearCenturyWindow est positive, sa valeur est soustraite de l’année en cours pour déterminer la « limite » ; les années à partir de la limite font partie du siècle actuel, alors que les années antérieures à la limite font partie du prochain siècle. Par exemple :
Année actuelle
TwoDigitYearCenturyWindow
Limite date =
jj/mm/03 date =
jj/mm/50 date =
jj/mm/68
1998 0 (valeur par défaut) 1900 1903 1950 1968
2002 0 (valeur par défaut) 2000 2003 2050 2068
1998 50 1948 2003 1950 1968
2000 50 1950 2003 1950 1968
2002 50 1952 2003 2050 1968
2020 50 1970 2003 2050 2068
2020 10 2010 2103 2050 2068
Vous pouvez utiliser TwoDigitYearCenturyWindow pour prolonger la vie des applications légales qui ne fonctionnent qu’avec des années de deux chiffres. Mais la meilleure solution consiste à demander les années sur quatre chiffres.
-------------------------------
DayOfWeek renvoie le jour de la semaine d'une date spécifiée.
Unité
SysUtils
Catégorie
routines de dates et d'heures
function DayOfWeek(Date: TDateTime): Integer;
Description
La fonction DayOfWeek renvoie le jour de la semaine d'une date sous la forme d'un entier compris entre 1 et 7. Dimanche est le premier jour de la semaine et samedi le septième.
---------------------------------------
EncodeDate renvoie un type TDateTime pour une Année, un Mois et un Jour spécifiés.
Unité
SysUtils
Catégorie
routines de dates et d'heures
function EncodeDate(Year, Month, Day: Word): TDateTime;
Description
La fonction EncodeDate renvoie une valeur de type TDateTime à partir des paramètres Year, Month et Day.
L'année doit être comprise entre 1 et 9999.
Les valeurs Month admises vont de 1 à 12.
Les valeurs Day admises vont de 2 à 28, 29, 30 ou 31, selon la valeur de Month. Par exemple, les valeurs possibles de Day pour le mois 2 (février) vont de 1 à 28, ou de 1 à 29 dans le cas d'une année bissextile.
Si les valeurs indiquées sont en-dehors de ces limites, une exception EConvertError est déclenchée. La valeur résultante est égale à 1 + le nombre de jours entre la date indiquée et le 30/12/1899.
-------------------------------------------------
DecodeDate scinde TDateTime en valeurs Année, Mois et Jour.
Unité
SysUtils
Catégorie
routines de dates et d'heures
procedure DecodeDate(Date: TDateTime; var Year, Month, Day: Word);
Description
La procédure DecodeDate sépare la valeur spécifiée par le paramètre Date en valeurs Année, Mois et Jour. Si la valeur TDateTime donnée est inférieure ou égale à zéro, l'année, le mois et le jour renvoient les paramètres initialisés à zéro.
--------------------------------------
EncodeTime renvoie un type TDateTime pour les heures, les minutes, les secondes et les millisecondes spécifiées.
Unité
SysUtils
Catégorie
routines de dates et d'heures
function EncodeTime(Hour, Min, Sec, MSec: Word): TDateTime;
Description
La fonction EncodeTime renvoie une valeur de type TDateTime à partir des paramètres Hour, Min, Sec et MSec. Les valeurs admises pour Hour vont de 0 à 12, pour Min et Sec de 0 à 59. MSec doit être comprise entre 0 et 999. Si les valeurs indiquées sont en-dehors de ces limites, une exception EConvertError est déclenchée.
La valeur résultante est égale à un nombre compris entre 0 (inclusif) et 1 (exclusif) qui indique la partie fractionnaire du jour en fonction de l'heure indiquée. La valeur 0 correspond à minuit, 0.5 correspond à midi, 0,75 correspond à 18:00, et ainsi de suite.
-------------------------------------------
DecodeTime scinde TDateTime en heures, minutes, secondes et millisecondes.
Unité
SysUtils
Catégorie
routines de dates et d'heures
procedure DecodeTime(Time: TDateTime; var Hour, Min, Sec, MSec: Word);
Description
La procédure DecodeTime sépare la valeur spécifiée par Time en heures, minutes, secondes et millisecondes.
--------------------------------
Time renvoie l'heure système.
Unité
SysUtils
Catégorie
routines de dates et d'heures
function Time: TDateTime;
Description
La fonction Time renvoie l'heure en cours.
---------------------------
Now renvoie la date et l'heure système.
Unité
SysUtils
Catégorie
routines de dates et d'heures
function Now: TDateTime;
Description
La fonction Now renvoie la date et l'heure en cours, ce qui équivaut à Date + Time.
------------------------------------
DateTimeToStr convertit une variable de type TDateTime en chaîne.
Unité
SysUtils
Catégorie
routines de dates et d'heures
function DateTimeToStr(DateTime: TDateTime): string;
Description
La fonction DateTimeToStr convertit une variable de type TDateTime en chaîne. Si le paramètre DateTime ne contient pas de valeur date, la date affichée sera 00/00/00. Si le paramètre DateTime ne contient pas de valeur horaire, l'heure affichée sera 00:00:00 AM. Vous pouvez changer le format de la chaîne en modifiant certaines des constantes type date/heure.
________________________________
TDateTime est le type utilisé par les routines date et heure afin de pouvoir conserver des valeurs date et heure.
Unité
System
type TDateTime = type Double;
Description
Delphi conserve les valeurs date et heure dans un type TDateTime. La partie entière d'une valeur de type TDateTime représente le nombre de jours depuis le 12/30/1899. La partie fractionnaire d'une valeur de type TDateTime est la partie des 24 heures écoulée.
Voici quelques exemples de valeurs de type TDateTime suivis de la date et de l'heure correspondantes :
0 12/30/1899 12:00 am
2.75 1/1/1900 6:00 pm
-1.25 12/29/1899 6:00 am
35065 1/1/1996 12:00 am
Pour trouver le nombre fractionnaire de jours entre deux dates, il suffit de soustraire les deux valeurs. De même, pour incrémenter une valeur date et heure d'un nombre fractionnaire, il suffit d'ajouter ce nombre à la valeur date et heure.
Remarque
Delphi 1.0 calculait la date depuis l'an 1 et non depuis l'an 1899. Pour convertir une date Delphi 1.0 en date Delphi 2.0, il faut soustraire 693594,0 de la date Delphi 1.0. Le format de date a été modifié pour une meilleure compatibilité avec l'automation OLE 2.0.
--------------------------------------
TTimeStamp représentes des valeurs date-heure.
Unité
SysUtils
type
TTimeStamp = record
Time: Integer; { Nombre de millisecondes depuis minuit }
Date: Integer; { Un plus nombre de jours depuis 1/1/0001 }
end;
Description
Utilisez TTimeStamp pour représenter des valeurs date-heure quand une grande précision est nécessaire dans la partie horaire. Quand les valeurs horaires n'ont pas besoin d'être précises à la milliseconde près, utilisez la représentation TDateTime qui est plus compacte.
TTimeStamp est un enregistrement contenant un champ Time qui représente le nombre de millisecondes écoulées depuis minuit et un champ Date représentant le nombre de jours calendaires écoulés depuis le début du calendrier.
-----------------------------------------
DateTimeToTimeStamp convertit une valeur TDateTime en valeur TTimeStamp.
Unité
SysUtils
Catégorie
routines de dates et d'heures
function DateTimeToTimeStamp(DateTime: TDateTime): TTimeStamp;
Description
Appelez DateTimeToTimeStamp pour convertir une valeur TDateTime en valeur TTimeStamp. Les valeurs TDateTime représentent l'heure sous forme du nombre de jours (y compris les jours non entiers) échus depuis le 30 décembre 1899 à midi. Les valeurs TTimeStamp représentent l'heure sous la forme d'une date et d'une heure , où la date est le nombre de jours écoulés depuis le début du calendrier en cours (le 1er janvier 0001 aurait la valeur 1) et l'heure est le nombre de millisecondes écoulées depuis minuit.
-------------------------------------
TimeStampToDateTime convertit une valeur TTimeStamp en valeur TDateTime.
Unité
SysUtils
Catégorie
routines de dates et d'heures
function TimeStampToDateTime(const TimeStamp: TTimeStamp): TDateTime;
Description
Appelez TimeStampToDateTime pour convertir une valeur TTimeStamp en valeur TDateTime. Les valeurs TTimeStamp représentent l'heure en séparant la date et l'heure, où la date est le nombre de jours calendaires écoulés depuis le début du calendrier actuel (le premier janvier 0001 aurait la valeur 1), et l'heure est le nombre de millisecondes depuis minuit. Les valeurs TDateTime représentent l'heure comme le nombre de jours écoulés depuis le 30 décembre 1899 à midi.
Et j'en ai peut être oublié ....
Ca devrait suffire non ?
@+
Philippe
[[ The Truth is Out There ]]
Delphi 4 propose les fonctions suivantes :
Date lit l'heure système.
Unité
SysUtils
Catégorie
routines de dates et d'heures
function Date: TDateTime;
Description
La fonction Date renvoie la date système.
-------------------------------------------------
DateToStr convertit une variable de type TDateTime en chaîne formatée.
Unité
SysUtils
Catégorie
routines de dates et d'heures
function DateToStr(Date: TDateTime): string;
Description
Utilisez DateToStr pour obtenir la représentation sous forme de chaîne d'une valeur date, dans le but de l'afficher. La conversion fait appel au format défini par la variable globale ShortDateFormat.
---------------------------
StrToDate convertit une chaîne en date.
Unité
SysUtils
Catégorie
routines de dates et d'heures
function StrToDate(const S: string): TDateTime;
Description
La date contenue dans la chaîne doit être valide.
La chaîne doit être constituée de deux ou trois nombres séparés par le caractère défini dans la variable globale DateSeparator. La séquence jour/mois/année est déterminée par la variable globale ShortDateFormat. Les combinaisons possibles sont MM/JJ/AA, JJ/MM/AA et AA/MM/JJ.
Si la chaîne contient uniquement deux nombres, la date est considérée comme faisant partie de l'année en cours (MM/JJ ou JJ/MM). Si la chaîne ne contient pas une date valide, une exception EConvertError est déclenchée.
Un format correct de date varie en fonction des valeurs de certaines constantes typées de date et d'heure.
Le format de la date varie quand les valeurs des variables de formatage date/heure sont modifiées.
La variable TwoDigitYearCenturyWindow contrôle l’interprétation des années sur deux chiffres. Si TwoDigitYearCenturyWindow est égale à 0, les années comprises entre 0 et 99 sont considérées comme faisant partie du siècle actuel. Si TwoDigitYearCenturyWindow est positive, sa valeur est soustraite de l’année en cours pour déterminer la « limite » ; les années à partir de la limite font partie du siècle actuel, alors que les années antérieures à la limite font partie du prochain siècle. Par exemple :
Année actuelle
TwoDigitYearCenturyWindow
Limite date =
jj/mm/03 date =
jj/mm/50 date =
jj/mm/68
1998 0 (valeur par défaut) 1900 1903 1950 1968
2002 0 (valeur par défaut) 2000 2003 2050 2068
1998 50 1948 2003 1950 1968
2000 50 1950 2003 1950 1968
2002 50 1952 2003 2050 1968
2020 50 1970 2003 2050 2068
2020 10 2010 2103 2050 2068
Vous pouvez utiliser TwoDigitYearCenturyWindow pour prolonger la vie des applications légales qui ne fonctionnent qu’avec des années de deux chiffres. Mais la meilleure solution consiste à demander les années sur quatre chiffres.
-------------------------------
DayOfWeek renvoie le jour de la semaine d'une date spécifiée.
Unité
SysUtils
Catégorie
routines de dates et d'heures
function DayOfWeek(Date: TDateTime): Integer;
Description
La fonction DayOfWeek renvoie le jour de la semaine d'une date sous la forme d'un entier compris entre 1 et 7. Dimanche est le premier jour de la semaine et samedi le septième.
---------------------------------------
EncodeDate renvoie un type TDateTime pour une Année, un Mois et un Jour spécifiés.
Unité
SysUtils
Catégorie
routines de dates et d'heures
function EncodeDate(Year, Month, Day: Word): TDateTime;
Description
La fonction EncodeDate renvoie une valeur de type TDateTime à partir des paramètres Year, Month et Day.
L'année doit être comprise entre 1 et 9999.
Les valeurs Month admises vont de 1 à 12.
Les valeurs Day admises vont de 2 à 28, 29, 30 ou 31, selon la valeur de Month. Par exemple, les valeurs possibles de Day pour le mois 2 (février) vont de 1 à 28, ou de 1 à 29 dans le cas d'une année bissextile.
Si les valeurs indiquées sont en-dehors de ces limites, une exception EConvertError est déclenchée. La valeur résultante est égale à 1 + le nombre de jours entre la date indiquée et le 30/12/1899.
-------------------------------------------------
DecodeDate scinde TDateTime en valeurs Année, Mois et Jour.
Unité
SysUtils
Catégorie
routines de dates et d'heures
procedure DecodeDate(Date: TDateTime; var Year, Month, Day: Word);
Description
La procédure DecodeDate sépare la valeur spécifiée par le paramètre Date en valeurs Année, Mois et Jour. Si la valeur TDateTime donnée est inférieure ou égale à zéro, l'année, le mois et le jour renvoient les paramètres initialisés à zéro.
--------------------------------------
EncodeTime renvoie un type TDateTime pour les heures, les minutes, les secondes et les millisecondes spécifiées.
Unité
SysUtils
Catégorie
routines de dates et d'heures
function EncodeTime(Hour, Min, Sec, MSec: Word): TDateTime;
Description
La fonction EncodeTime renvoie une valeur de type TDateTime à partir des paramètres Hour, Min, Sec et MSec. Les valeurs admises pour Hour vont de 0 à 12, pour Min et Sec de 0 à 59. MSec doit être comprise entre 0 et 999. Si les valeurs indiquées sont en-dehors de ces limites, une exception EConvertError est déclenchée.
La valeur résultante est égale à un nombre compris entre 0 (inclusif) et 1 (exclusif) qui indique la partie fractionnaire du jour en fonction de l'heure indiquée. La valeur 0 correspond à minuit, 0.5 correspond à midi, 0,75 correspond à 18:00, et ainsi de suite.
-------------------------------------------
DecodeTime scinde TDateTime en heures, minutes, secondes et millisecondes.
Unité
SysUtils
Catégorie
routines de dates et d'heures
procedure DecodeTime(Time: TDateTime; var Hour, Min, Sec, MSec: Word);
Description
La procédure DecodeTime sépare la valeur spécifiée par Time en heures, minutes, secondes et millisecondes.
--------------------------------
Time renvoie l'heure système.
Unité
SysUtils
Catégorie
routines de dates et d'heures
function Time: TDateTime;
Description
La fonction Time renvoie l'heure en cours.
---------------------------
Now renvoie la date et l'heure système.
Unité
SysUtils
Catégorie
routines de dates et d'heures
function Now: TDateTime;
Description
La fonction Now renvoie la date et l'heure en cours, ce qui équivaut à Date + Time.
------------------------------------
DateTimeToStr convertit une variable de type TDateTime en chaîne.
Unité
SysUtils
Catégorie
routines de dates et d'heures
function DateTimeToStr(DateTime: TDateTime): string;
Description
La fonction DateTimeToStr convertit une variable de type TDateTime en chaîne. Si le paramètre DateTime ne contient pas de valeur date, la date affichée sera 00/00/00. Si le paramètre DateTime ne contient pas de valeur horaire, l'heure affichée sera 00:00:00 AM. Vous pouvez changer le format de la chaîne en modifiant certaines des constantes type date/heure.
________________________________
TDateTime est le type utilisé par les routines date et heure afin de pouvoir conserver des valeurs date et heure.
Unité
System
type TDateTime = type Double;
Description
Delphi conserve les valeurs date et heure dans un type TDateTime. La partie entière d'une valeur de type TDateTime représente le nombre de jours depuis le 12/30/1899. La partie fractionnaire d'une valeur de type TDateTime est la partie des 24 heures écoulée.
Voici quelques exemples de valeurs de type TDateTime suivis de la date et de l'heure correspondantes :
0 12/30/1899 12:00 am
2.75 1/1/1900 6:00 pm
-1.25 12/29/1899 6:00 am
35065 1/1/1996 12:00 am
Pour trouver le nombre fractionnaire de jours entre deux dates, il suffit de soustraire les deux valeurs. De même, pour incrémenter une valeur date et heure d'un nombre fractionnaire, il suffit d'ajouter ce nombre à la valeur date et heure.
Remarque
Delphi 1.0 calculait la date depuis l'an 1 et non depuis l'an 1899. Pour convertir une date Delphi 1.0 en date Delphi 2.0, il faut soustraire 693594,0 de la date Delphi 1.0. Le format de date a été modifié pour une meilleure compatibilité avec l'automation OLE 2.0.
--------------------------------------
TTimeStamp représentes des valeurs date-heure.
Unité
SysUtils
type
TTimeStamp = record
Time: Integer; { Nombre de millisecondes depuis minuit }
Date: Integer; { Un plus nombre de jours depuis 1/1/0001 }
end;
Description
Utilisez TTimeStamp pour représenter des valeurs date-heure quand une grande précision est nécessaire dans la partie horaire. Quand les valeurs horaires n'ont pas besoin d'être précises à la milliseconde près, utilisez la représentation TDateTime qui est plus compacte.
TTimeStamp est un enregistrement contenant un champ Time qui représente le nombre de millisecondes écoulées depuis minuit et un champ Date représentant le nombre de jours calendaires écoulés depuis le début du calendrier.
-----------------------------------------
DateTimeToTimeStamp convertit une valeur TDateTime en valeur TTimeStamp.
Unité
SysUtils
Catégorie
routines de dates et d'heures
function DateTimeToTimeStamp(DateTime: TDateTime): TTimeStamp;
Description
Appelez DateTimeToTimeStamp pour convertir une valeur TDateTime en valeur TTimeStamp. Les valeurs TDateTime représentent l'heure sous forme du nombre de jours (y compris les jours non entiers) échus depuis le 30 décembre 1899 à midi. Les valeurs TTimeStamp représentent l'heure sous la forme d'une date et d'une heure , où la date est le nombre de jours écoulés depuis le début du calendrier en cours (le 1er janvier 0001 aurait la valeur 1) et l'heure est le nombre de millisecondes écoulées depuis minuit.
-------------------------------------
TimeStampToDateTime convertit une valeur TTimeStamp en valeur TDateTime.
Unité
SysUtils
Catégorie
routines de dates et d'heures
function TimeStampToDateTime(const TimeStamp: TTimeStamp): TDateTime;
Description
Appelez TimeStampToDateTime pour convertir une valeur TTimeStamp en valeur TDateTime. Les valeurs TTimeStamp représentent l'heure en séparant la date et l'heure, où la date est le nombre de jours calendaires écoulés depuis le début du calendrier actuel (le premier janvier 0001 aurait la valeur 1), et l'heure est le nombre de millisecondes depuis minuit. Les valeurs TDateTime représentent l'heure comme le nombre de jours écoulés depuis le 30 décembre 1899 à midi.
Et j'en ai peut être oublié ....
Ca devrait suffire non ?
@+
Philippe
[[ The Truth is Out There ]]
C pa une solution de faire ca, C a dire convertir , soustraire et tt ce trimbalin.
Je déconnecte tt de suite, je prendrai un stylo et papier, j essayerai de faire tourner ca à la main; je te donnerai la solution aprés ok?
Mais la je vais juste te donner l algorithme ou le principe, car j ai jamais travaillé avec delphi ok??
Je déconnecte tt de suite, je prendrai un stylo et papier, j essayerai de faire tourner ca à la main; je te donnerai la solution aprés ok?
Mais la je vais juste te donner l algorithme ou le principe, car j ai jamais travaillé avec delphi ok??
Salut me revoilà ;
Ouai je crois que la conversion serait la solution optimale pour cet algo :--).
Voici ce que je te propose, si tu connais pas la notion d enregistrement, tu pourrai saisir tes dates dans un tableau oubien ts simplement tu les saisis dans des variables distinctes ( par exemple jour1, mois1, année1…)
ALGORITHME
ENVIRONNEMENT
-Type : t_date : enregistrement décrivant une structure de données de la forme
Jour : entier
Mois : entier
Année : entier
Date1, date2 : de type t_date qui sont les 2dates à saisir en entrée.
Cumul1, cumul2 : variables intermédiaires, servira de cumul de conversion des dates en jours.
Diff : C le résultat, nbre de jour entre les deux dates (date2-date1)
i et k sont des variables intermédiares
DEBUT :
Lire(date1.jour)
Lire(date1.mois)
Lire(date1.année)
Lire(date2.jour)
Lire(date2.mois)
Lire(date2.année)
Cumul1ßdate1.jour
Cumul2ßdate2.jour
Pour i de 0 à date1.mois faire
Si i=1,3,5,7,8,10,12 alors cumul1ßi*31 + cumul1
Sinon si i=4,6,9,11 alors cumul1ßi*30+cumul1
Sinon /***LA il faudrai envisager deux cas, si l année est bixestil ou pas pour le mois de fevrier !!!!*/
Fin pour
Cumul1ßcumul1+date1.année*(7*31+4*30+29) /29 ou 28 ca dépend de l année !!)
/*On refait la même chose pour la 2iéme date*/
Pour i de 0 à date2.mois faire
Si i=1,3,5,7,8,10,12 alors cumul2ßi*31 + cumul2
Sinon si i=4,6,9,11 alors cumul2ßi*30+cumul2
Sinon /***LA il faudrai envisager deux cas, si l année est bixestil ou pas pour le mois de fevrier !!!!*/
Fin pour
Cumul2ßcumul2+date2.année*(7*31+4*30+29) /29 ou 28 ca dépend de l année !!)
Diffßcumul2-cumul1
FIN
Voilà J espére que ca va te simplifier ta tâche, N hésite pas à me contacter en cas d incompréhesion.
Bon Travail
Ouai je crois que la conversion serait la solution optimale pour cet algo :--).
Voici ce que je te propose, si tu connais pas la notion d enregistrement, tu pourrai saisir tes dates dans un tableau oubien ts simplement tu les saisis dans des variables distinctes ( par exemple jour1, mois1, année1…)
ALGORITHME
ENVIRONNEMENT
-Type : t_date : enregistrement décrivant une structure de données de la forme
Jour : entier
Mois : entier
Année : entier
Date1, date2 : de type t_date qui sont les 2dates à saisir en entrée.
Cumul1, cumul2 : variables intermédiaires, servira de cumul de conversion des dates en jours.
Diff : C le résultat, nbre de jour entre les deux dates (date2-date1)
i et k sont des variables intermédiares
DEBUT :
Lire(date1.jour)
Lire(date1.mois)
Lire(date1.année)
Lire(date2.jour)
Lire(date2.mois)
Lire(date2.année)
Cumul1ßdate1.jour
Cumul2ßdate2.jour
Pour i de 0 à date1.mois faire
Si i=1,3,5,7,8,10,12 alors cumul1ßi*31 + cumul1
Sinon si i=4,6,9,11 alors cumul1ßi*30+cumul1
Sinon /***LA il faudrai envisager deux cas, si l année est bixestil ou pas pour le mois de fevrier !!!!*/
Fin pour
Cumul1ßcumul1+date1.année*(7*31+4*30+29) /29 ou 28 ca dépend de l année !!)
/*On refait la même chose pour la 2iéme date*/
Pour i de 0 à date2.mois faire
Si i=1,3,5,7,8,10,12 alors cumul2ßi*31 + cumul2
Sinon si i=4,6,9,11 alors cumul2ßi*30+cumul2
Sinon /***LA il faudrai envisager deux cas, si l année est bixestil ou pas pour le mois de fevrier !!!!*/
Fin pour
Cumul2ßcumul2+date2.année*(7*31+4*30+29) /29 ou 28 ca dépend de l année !!)
Diffßcumul2-cumul1
FIN
Voilà J espére que ca va te simplifier ta tâche, N hésite pas à me contacter en cas d incompréhesion.
Bon Travail
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Marden
Messages postés
1072
Date d'inscription
dimanche 11 février 2001
Statut
Membre
Dernière intervention
29 janvier 2006
208
4 mars 2002 à 01:10
4 mars 2002 à 01:10
Pour ma part, j'utilise une méthode qui consiste à compter le nombre de jours écoulés depuis 31/12/0000, selon le calendrier julien, mais en ignorant le passage (en France) du Dim 09/12 au Lun 20/12/1582, en cumulant :
- les groupes de 4 siècles (x 146097 jours, ex : an 0001 à 1600),
- puis, dans ce qui reste, les siècles (x 146097 jours, ex : an 1601 à 1900),
- puis les groupes de 4 ans (x 1461 jours, ex : an 1901 à 1996),
- puis les années (x 365 jours, ex : 1997 à 1999),
- puis le quantième de l'année (avec 2 tables de cumul en jours pour les mois des années bissextile et non bissextile)
- les groupes de 4 siècles (x 146097 jours, ex : an 0001 à 1600),
- puis, dans ce qui reste, les siècles (x 146097 jours, ex : an 1601 à 1900),
- puis les groupes de 4 ans (x 1461 jours, ex : an 1901 à 1996),
- puis les années (x 365 jours, ex : 1997 à 1999),
- puis le quantième de l'année (avec 2 tables de cumul en jours pour les mois des années bissextile et non bissextile)
jisisv
Messages postés
3645
Date d'inscription
dimanche 18 mars 2001
Statut
Modérateur
Dernière intervention
15 janvier 2017
934
4 mars 2002 à 04:33
4 mars 2002 à 04:33
Pour rire, il n'existe pas de fonction fournie par l'environnement.
Si on convertit les dates en teps système genre unix il doit y avoir moyen de se tirer d'affaire..
http://www.mcsr.olemiss.edu/cgi-bin/man-cgi?time+2
(fait une recherche sur google)
BSi Delphi ne fournit pas les fonctionnalités ce n'est plus mes oignons...
Johan Daine
Si on convertit les dates en teps système genre unix il doit y avoir moyen de se tirer d'affaire..
http://www.mcsr.olemiss.edu/cgi-bin/man-cgi?time+2
(fait une recherche sur google)
BSi Delphi ne fournit pas les fonctionnalités ce n'est plus mes oignons...
Johan Daine
Orel j éspére que Ca t a vraiment aidé ce que je t ai proposé.
Qu est ce que tu fais comme etudes?
Qu est ce que tu fais comme etudes?
Salut Kiddo !
En fait g trouvé une solution simple, et j'aime pas trop me comploiquer la vie alors... quoi que ton algo avait l'air assez logique mais le mien tien en 2 lignes ! alors...
Tu me demande ce que g fait comme études : BTS Informatique de Gestion (développeur d'applications.) Et toi ?
Voilà ! A+.
(Ps : Kiddo : quel drôle de surnom ?)
En fait g trouvé une solution simple, et j'aime pas trop me comploiquer la vie alors... quoi que ton algo avait l'air assez logique mais le mien tien en 2 lignes ! alors...
Tu me demande ce que g fait comme études : BTS Informatique de Gestion (développeur d'applications.) Et toi ?
Voilà ! A+.
(Ps : Kiddo : quel drôle de surnom ?)
Merci bcp PhP pour ces brèves explications !!...
Mais g déjà trouvé une soluce simple :
var
Dif: extended;
begin
Dif := Now - StrToDate('15/01/2002');
lblDuree.Caption := '(' + floattostr(Round(Dif)) + ' jours )';
end;
Mais g déjà trouvé une soluce simple :
var
Dif: extended;
begin
Dif := Now - StrToDate('15/01/2002');
lblDuree.Caption := '(' + floattostr(Round(Dif)) + ' jours )';
end;
Salut Kiddo !
En fait g trouvé une solution simple, et j'aime pas trop me compliquer la vie alors... quoi que ton algo avait l'air assez logique mais le mien tien en 2 lignes ! alors...
Tu me demande ce que g fait comme études : BTS Informatique de Gestion (développeur d'applications.) Et toi ?
Voilà ! A+.
(Ps : Kiddo : quel drôle de surnom ?)
En fait g trouvé une solution simple, et j'aime pas trop me compliquer la vie alors... quoi que ton algo avait l'air assez logique mais le mien tien en 2 lignes ! alors...
Tu me demande ce que g fait comme études : BTS Informatique de Gestion (développeur d'applications.) Et toi ?
Voilà ! A+.
(Ps : Kiddo : quel drôle de surnom ?)
wwaw de l Informatique appliquée Gestion ca doit être interessant.
Moi je fais des études dans les Réseaux Informatiques et Télecommunications.
;)
Moi je fais des études dans les Réseaux Informatiques et Télecommunications.
;)
Ouias c pas mal, mais y a pas que de la gestion, y aussi de la création de sites internet, de l'architecture matérielle, de l'analyse (bases de données, mcd, mld), algo, asp etc... voilà...
C simple j'ai l'ADSL, alors tu vois je peut me permettre et je dois dire que j'en suis plutôt content !... ça a pas l'air d'être ton cas !
Salut à tous ;-)
J'arrive avec 3 ans de retard mais bon...
Je cherchais une fonction Delphi qui retourne le nombre de secondes écoulées entre 2 dates et puis j'ai rien trouvé mais je suis tombé sur ce forum !
Je vous fait donc partager la petite fonction que je viens de terminer qui à mon avis est beaucoup plus simple que celles développées plus haut :
function CalculDureeEntreDates(DateF,DateO:TDateTime):int64; // en seondes
var DateTmp:TDateTime;
Jours,Secondes:integer;
begin
if DateF > DateO then
begin
DateTmp:=DateF-DateO;
Secondes:=trunc(DateTimeToTimeStamp(DateTmp).Time/1000);
Jours:=DateTimeToTimeStamp(DateTmp).Date -DateDelta;
CalculDureeEntreDates:=Jours*86400+Secondes
end
else // sinon risque de beug du fait que le nb de jours est signé tandis que secondes ne l'est apparement pas...
begin
CalculDureeEntreDates:=0;
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
showmessage(inttostr(CalculDureeEntreDates(StrToDateTime('13/04/2005 12:32:22'),StrToDateTime('12/03/2005 11:32:22'))));
end;
A++
TheCogitor
J'arrive avec 3 ans de retard mais bon...
Je cherchais une fonction Delphi qui retourne le nombre de secondes écoulées entre 2 dates et puis j'ai rien trouvé mais je suis tombé sur ce forum !
Je vous fait donc partager la petite fonction que je viens de terminer qui à mon avis est beaucoup plus simple que celles développées plus haut :
function CalculDureeEntreDates(DateF,DateO:TDateTime):int64; // en seondes
var DateTmp:TDateTime;
Jours,Secondes:integer;
begin
if DateF > DateO then
begin
DateTmp:=DateF-DateO;
Secondes:=trunc(DateTimeToTimeStamp(DateTmp).Time/1000);
Jours:=DateTimeToTimeStamp(DateTmp).Date -DateDelta;
CalculDureeEntreDates:=Jours*86400+Secondes
end
else // sinon risque de beug du fait que le nb de jours est signé tandis que secondes ne l'est apparement pas...
begin
CalculDureeEntreDates:=0;
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
showmessage(inttostr(CalculDureeEntreDates(StrToDateTime('13/04/2005 12:32:22'),StrToDateTime('12/03/2005 11:32:22'))));
end;
A++
TheCogitor
avec ce problème, vous serrez obligé de faire une requête en programmation soit en ACCESS ou en VB comme bon vous semble
Bonjour !
En ce qui concerne votre problème de calcul de secondes entre deux dates, il y a une fontion :
SecondsBetween(const ANow, AThen: TDateTime): Int64;
qui renvoie le nombre de secondes écoulées entre deux dates et qui nécessite d'ajouter DateUtils à la clause uses en début d'unité :
Uses Windows ....... , DateUtils;
Tapez SecondsBeetween, appelez l'aide et vous pourrez lister l'ensemble des fonctions de l'unité DateUtils qui est une mine !
En ce qui concerne votre problème de calcul de secondes entre deux dates, il y a une fontion :
SecondsBetween(const ANow, AThen: TDateTime): Int64;
qui renvoie le nombre de secondes écoulées entre deux dates et qui nécessite d'ajouter DateUtils à la clause uses en début d'unité :
Uses Windows ....... , DateUtils;
Tapez SecondsBeetween, appelez l'aide et vous pourrez lister l'ensemble des fonctions de l'unité DateUtils qui est une mine !
houbie
Messages postés
34
Date d'inscription
samedi 18 août 2007
Statut
Membre
Dernière intervention
12 février 2013
2
26 mars 2008 à 10:18
26 mars 2008 à 10:18
Bonjour,
vous avez pas de solution pour j script ? c'est urgent et merci d'avance
vous avez pas de solution pour j script ? c'est urgent et merci d'avance
issambh
Messages postés
3
Date d'inscription
lundi 31 mars 2008
Statut
Membre
Dernière intervention
1 avril 2008
31 mars 2008 à 09:28
31 mars 2008 à 09:28
Bonjourà tous...
j'ai un probleme avec excel , j'ai un fichier (.dbf) qui s'ouvre avec excel mais qui affiche la dtae et l'heure dans une meme cellule sous la forme suivante: 20080306073441046
il n y a pas une methode pour séparer l'heure et la date et qu'is soient sous le format suivant:
06/03/2008
07:34:41046
j'ai un probleme avec excel , j'ai un fichier (.dbf) qui s'ouvre avec excel mais qui affiche la dtae et l'heure dans une meme cellule sous la forme suivante: 20080306073441046
il n y a pas une methode pour séparer l'heure et la date et qu'is soient sous le format suivant:
06/03/2008
07:34:41046
3 mars 2002 à 23:18
Merci.