Calcul d'un délai par rapport à une date donnée

alecour -  
gabin_de_Emme_Béat Messages postés 1 Statut Membre -
Bonjour,
Je cherche une méthode fiable qui
me renvoie une date par rapport à une date donnée.
Par exemple :
datedépart -> '12.12.1954' -21 jours -8 mois -1 an me donne la date du '21.03.1953', c'est bien ce que je dois trouver.
Par contre, le contraire, c'est à dire :
datedépart -> '21.03.1953' +21 jours +8 mois +1 an me donne la date du '11.12.1954' et pas '12.12.1954' que je voudrais trouvé.
Ci-dessous la fonction php que j'ai créé :
<?php
function dif_date($date,$d=0,$m=0,$y=0) {
	$date = new DateTime($date);
	$jr = $date->format('d');
	$mo = $date->format('m');
	$l = $date->format('L');
	If ($l == 1 && $d == '29'):
		If ($m == -1):
			$d = -29;
		EndIf;
	EndIf;
	If ($l == 0 && $d == '28'):
		If ($m == -1):
			$d = -28;
		EndIf;
	EndIf;
	If ($d >= 0):
		$r = $date->add(new DateInterval('P'.$d.'D'));
	Else:
		$r = $date->sub(new DateInterval('P'.abs($d).'D'));
	EndIf;
	If ($m >= 0):
		$r = $date->add(new DateInterval('P'.$m.'M'));
	Else:
		$r = $date->sub(new DateInterval('P'.abs($m).'M'));
	EndIf;
	If ($y >= 0):
		$r = $date->add(new DateInterval('P'.$y.'Y'));
	Else:
		$r = $date->sub(new DateInterval('P'.abs($y).'Y'));
	EndIf;
	$r->format('d.m.Y');
	return $r;
}
?>

Merci de me dire ou se trouve ce qui ne marche pas.
A voir également:

1 réponse

gabin_de_Emme_Béat Messages postés 1 Statut Membre
 
"Algèbre calendaire".
C'est le mot_clé_de_recherche sur ton moteur de recherche favori ( Google, Bing, Yahoo ...) . Et oui il faut se former à rechercher.

Tu as posé un Pb: Mon programme marche quand il soustrait 2 dates quelconques. Il ne marche pas quand il additionne ! C'est paradoxal et frustrant. Recherche wiki, Google etc.
Gabin
0