wbiba21
Messages postés16Date d'inscriptiondimanche 15 avril 2012StatutMembreDernière intervention 3 mars 2013
-
7 juin 2012 à 10:03
cs_yanb
Messages postés271Date d'inscriptionlundi 27 octobre 2003StatutMembreDernière intervention 7 juillet 2022
-
21 juin 2012 à 16:11
salut je suis entrain de faire un pgm de gestion de personnel jai tombé dans le probleme de calcule de nombre de jour entre deux dates,
bon jai 2date date debut et date fin je veut
calculer la difference entre les deux dates (le nombre de jour)a condition chaque mois contient 30jours
exp date debut 01/01/2012 et date fin 13/05/2012 le nombre de jour (janvier30+fevrier30+mars30+avril30+mai13(le moi de mai calcule a partir de 13)=138jour)
wbiba21
Messages postés16Date d'inscriptiondimanche 15 avril 2012StatutMembreDernière intervention 3 mars 2013 10 juin 2012 à 12:01
salut,
bon dans le personnel travail comme Ca pour le donner au service comptabilité (paie et rapel) et dans la comptabilité chaque mois contient 30jour et l'anne 360jour
par exp calculer le rapel d'avancement d'echelon d'un employer date debut 13/01/2012
date fin 30/05/2012
(janvier 18jour calcule apartir de13+fevrier30jour+mars 30jour +avril 30jour +mai 30 jour)=138jour.
solilog
Messages postés273Date d'inscriptionsamedi 13 juin 2009StatutMembreDernière intervention18 avril 201510 11 juin 2012 à 00:08
Salut,
Tu dois utiliser une fonction similaire des calculs d'intérêts bancaires appelés 30/360. chaque mois plein compte 30 jours. Peut-être ajouter 1 car si d1=d2 tu auras 0 alors que tu veut sans doute 1 ?
Voilà, ceci devrait t'aider.
function nbJours(date1, date2 : tdatetime): integer;
var y1, m1, d1,
y2, m2, d2 : word;
begin
// au cas ou y a des heures <> diff dans les dates;
date1 := int(date1); date2 := int(date2);
// on récupère les années, mois et jours
decodedate( date1, y1, m1, d1);
decodedate( date2, y2, m2, d2);
// calcul
result := (d2-d1) + (30*(m2-m1)) + (360*(y2-y1));
end;
cs_yanb
Messages postés271Date d'inscriptionlundi 27 octobre 2003StatutMembreDernière intervention 7 juillet 202214 21 juin 2012 à 16:11
Salut,
la réponse de Solilog fonctionne parfaitement...
Ou est le problème ?
aller une autre variante juste pour te montrer DayOf, MonthOf, YearOf de l'unité DateUtils...
uses DateUtils
...
function nbJours(Date1, Date2 : TDateTime): integer;
begin
Result := (DayOf(Date2)-(DayOf(Date1)-1)) + (30*(MonthOf(Date2)-MonthOf(Date1))) + (360*(YearOf(Date2)-YearOf(Date1)));
end;