0 ; $cont--){
$dia--;
if($dia == 00){ // Volta o dia para dia 31 .
$dia = 31;
$mes = $mes -1; // Diminui um mês se o dia zerou .
if($mes == 00){
$mes = 12;
$ano = $ano - 1; // Se for Janeiro e subtrair 1 , vai para o ano anterior no mês de dezembro.
}
}
}
}
// Meses que o antecessor tem 30 dias -----------------------------------------
elseif($mes == "05" || $mes == "07" || $mes == "10" || $mes == "12" ){
for ($cont = $dias ; $cont > 0 ; $cont--){
$dia--;
if($dia == 00){ // Volta o dia para dia 30 .
$dia = 30;
$mes = $mes -1; // Diminui um mês se o dia zerou .
}
}
}
ou
// Meses que o antecessor tem 30 dias -----------------------------------------
if($mes == "05" || $mes == "07" || $mes == "10" || $mes == "12" ){
for ($cont = $dias ; $cont > 0 ; $cont--){
$dia--;
if($dia == 00){ // Volta o dia para dia 30 .
$dia = 30;
$mes = $mes -1; // Diminui um mês se o dia zerou .
}
}
}
// Meses que o antecessor tem 31 dias -----------------------------------------
if($mes == "01" || $mes == "02" || $mes == "04" || $mes == "06" || $mes == "08" || $mes == "09" || $mes == "11"){
for ($cont = $dias ; $cont > 0 ; $cont--){
$dia--;
if($dia == 00){ // Volta o dia para dia 31 .
$dia = 31;
$mes = $mes -1; // Diminui um mês se o dia zerou .
if($mes == 00){
$mes = 12;
$ano = $ano - 1; // Se for Janeiro e subtrair 1 , vai para o ano anterior no mês de dezembro.
}
}
}
}
*/
// ============================================================================
function voltadata($dias,$datahoje){
// Desmembra Data -------------------------------------------------------------
if (ereg ("([0-9]{1,2})/([0-9]{1,2})/([0-9]{4})", $datahoje, $sep)) {
$dia = $sep[1];
$mes = $sep[2];
$ano = $sep[3];
} else {
echo "Formato Inválido de Data - $datahoje
";
}
// Meses que o antecessor tem 31 dias -----------------------------------------
if($mes == "01" || $mes == "02" || $mes == "04" || $mes == "06" || $mes == "08" || $mes == "09" || $mes == "11"){
for ($cont = $dias ; $cont > 0 ; $cont--){
$dia--;
if($dia == 00){ // Volta o dia para dia 31 .
$dia = 31;
$mes = $mes -1; // Diminui um mês se o dia zerou .
if($mes == 00){
$mes = 12;
$ano = $ano - 1; // Se for Janeiro e subtrair 1 , vai para o ano anterior no mês de dezembro.
}
}
}
}
// Meses que o antecessor tem 30 dias -----------------------------------------
elseif($mes == "05" || $mes == "07" || $mes == "10" || $mes == "12" ){
for ($cont = $dias ; $cont > 0 ; $cont--){
$dia--;
if($dia == 00){ // Volta o dia para dia 30 .
$dia = 30;
$mes = $mes -1; // Diminui um mês se o dia zerou .
}
}
}
// Mês que o antecessor é fevereiro -------------------------------------------
//
// == Correção do voltadata no mês Abril/Março =============================================
// Modificado por: Paulo Roberto Ens pauloens@bruc.com.br
// Data: 11 Mai 2005
// ============================================================================
//
else //Else adicionado para funcionar o voltadata no mês de Abril/Março
{
if($ano % 4 == 0 && $ano%100 != 0){ // se for bissexto
if($mes == "03" ){
for ($cont = $dias ; $cont > 0 ; $cont--){
$dia--;
if($dia == 00){ // Volta o dia para dia 30 .
$dia = 29;
$mes = $mes -1; // Diminui um mês se o dia zerou .
}
}
}
}//fecha se bissexto...
else{ // se não for bissexto
if($mes == "03" ){
for ($cont = $dias ; $cont > 0 ; $cont--){
$dia--;
if($dia == 00){ // Volta o dia para dia 30 .
$dia = 28;
$mes = $mes -1; // Diminui um mês se o dia zerou .
}
}
}
}
}//Termina else dos meses
// Confirma Saída de 2 dígitos ------------------------------------------------
if(strlen($dia) == 1){$dia = "0".$dia;}
if(strlen($mes) == 1){$mes = "0".$mes;}
// Monta Saída ----------------------------------------------------------------
$nova_data = $dia."/".$mes."/".$ano ;
print $nova_data;
} //fecha função
//
// == Função para adição de datas =============================================
// Autor: Fernando Barchi Finotti - fbarchi@ig.com.br
// Modificado por: Tripa Seca @ phpbrasil.com
// Data: 02 Dez 01
// ============================================================================
//
function somadata($dias,$datahoje){
// Desmembra Data -------------------------------------------------------------
if (ereg ("([0-9]{1,2})/([0-9]{1,2})/([0-9]{4})", $datahoje, $sep)) {
$dia = $sep[1];
$mes = $sep[2];
$ano = $sep[3];
} else {
echo "Formato Inválido de Data - $datahoje
";
}
$i = $dias;
for($i = 0;$i<$dias;$i++){
if ($mes == "01" || $mes == "03" || $mes == "05" || $mes == "07" || $mes == "08" || $mes == "10" || $mes == "12"){
if($mes == 12 && $dia == 31){
$mes = 01;
$ano++;
$dia = 00;
}
if($dia == 31 && $mes != 12){
$mes++;
$dia = 00;
}
}//fecha if geral
if($mes == "04" || $mes == "06" || $mes == "09" || $mes == "11"){
if($dia == 30){
$dia = 00;
$mes++;
}
}//fecha if geral
if($mes == "02"){
if($ano % 4 == 0 && $ano % 100 != 0){ //ano bissexto
if($dia == 29){
$dia = 00;
$mes++;
}
}
else{
if($dia == 28){
$dia = 00;
$mes++;
}
}
}//FECHA IF DO MÊS 2
$dia++;
}//fecha o for()
// Confirma Saída de 2 dígitos ------------------------------------------------
if(strlen($dia) == 1){$dia = "0".$dia;};
if(strlen($mes) == 1){$mes = "0".$mes;};
// Monta Saída ----------------------------------------------------------------
$nova_data = $dia."/".$mes."/".$ano;
print $nova_data;
}//fecha a funçâo data
?>
";
echo "Soma Data: ";
somadata("1","31/03/2004");
?>