//Vale lembrar que a fun��o aceita n�meros negativos
//como argumento, passando ent�o:

//echo dateadd(5); //soma-se 5 dias a data do sistema
//echo dateadd(-5,"06/01/1975"; //diminui 5 dias da data passada


function dateadd($dias,$datahoje = "?")
{ 
 if ($datahoje == "?")
 {
  $datahoje = date("d") . "/" . date("m") . "/".date("Y");
 }

  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 
  {   
    return "#Erro#";   
  }   

  if ($dias < 0)
  {
    $dias = $dias * -1;
    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)
      {  
       $dia = 31;   
       $mes = $mes -1;
        if($mes == 00)
        {   
         $mes = 12;   
         $ano = $ano - 1;
        }   
      }   
     }   
    }   

    if($mes == "05" || $mes == "07" || $mes == "10" || $mes == "12" )
    {   
     for ($cont = $dias ; $cont > 0 ; $cont--)
     {   
      $dia--;   
      if($dia == 00)
       {
        $dia = 30;   
        $mes = $mes -1;
       }   
      }   
    }   

   if($ano % 4 == 0 && $ano%100 != 0)
   { 
    if($mes == "03")
     {   
      for ($cont = $dias ; $cont > 0 ; $cont--)
      {   
        $dia--;   
        if($dia == 00)
         { 
          $dia = 29;   
          $mes = $mes -1;
        }   
       }   
     }   
   }
   else
   { 
    if($mes == "03" )
    {   
      for ($cont = $dias ; $cont > 0 ; $cont--)
       {   
        $dia--;   
        if($dia == 00)
         {
          $dia = 28;   
          $mes = $mes -1;
         }   
       }   
     }   
   }   
  }
  else
  {
  $i = $dias;   
  for($i = 0;$i<$dias;$i++)
  {   
    if ($mes == 01 || $mes == 03 || $mes == 05 || $mes == 07 || $mes == 8 || $mes == 10 || $mes == 12)
    {   
      if($mes == 12 && $dia == 31)
      {   
        $mes = 01;   
        $ano++;   
        $dia = 00;   
      }   
    if($dia == 31 && $mes != 12)
    {   
      $mes++;   
      $dia = 00;   
    }   
  }
  if($mes == 04 || $mes == 06 || $mes == 09 || $mes == 11)
  {   
    if($dia == 30)
    {   
      $dia =  00;   
      $mes++;   
    }   
  }

  if($mes == 02)
  {   
    if($ano % 4 == 0 && $ano % 100 != 0)
    {
      if($dia == 29)
      {   
        $dia = 00;   
        $mes++;        
      }   
    }   
    else
    {   
      if($dia == 28)
      {   
        $dia = 00;   
        $mes++;   
      }   
    }   
  }
  $dia++;   
  }
  } 
  if(strlen($dia) == 1){$dia = "0".$dia;}   
  if(strlen($mes) == 1){$mes = "0".$mes;}   
  $nova_data = $dia . "/" . $mes . "/" . $ano ;   
  return $nova_data;   
}