terça-feira, 4 de janeiro de 2011

Strings com a letras em maiúsculo quando necessário.

Exemplos:

$palavra=strtolower($palavra); //converte todas em minuscula
$palavra=ucfirst($palavra); //converte só a 1ª em maiucula

Script que pode colocar palavras em uma string em maiúsculas quando necessário...

<?
$nome = "naylor garcia dos santos";
$nome_mae = "vitoria GaRCia";
$endereco = "kljfkd";
$bairro = "CentRo";
for ($i=0; $i < 1; $i++) {
$res_fin = "";
if ($i == 0) $string[$i]=ucfirst($nome);
if ($i == 1) $string[$i]=ucfirst($nome_mae);
if ($i == 2) $string[$i]=ucfirst($endereco);
if ($i == 3) $string[$i]=ucfirst($bairro);
$string[$i] = strtolower($string[$i]);
for ($j=0; $j <= strlen($string[$i]); $j++) {
$res_str = substr($string[$i], $j, 1);
if ($res_str == " ") {
$pre = substr($string[$i], $j+3, 1);
echo "1 $pre<br><br>";
if ($pre != " ") $pre = substr($string[$i], $j+4, 1);
$pos = substr($string[$i], $j+1, 3);
echo "2 Pre:$pre<br>Pos:$pos<br><br>";
if ((($pre == " ") && ($pos == "de ")) || (($pre == " ") && ($pos == "do ")) || (($pre == " ") && ($pos == "das")) || (($pre == " ") && ($pos == "dos")) || (($pre == " ") && ($pos == "das")) || (($pre == " ") && ($pos == "da "))) {
$res_fin = "$res_fin $res_par";
} else {
$res_par = ucfirst(substr($string[$i], $j+1, 1));
$res_fin = "$res_fin $res_par";
$res_par = "";
$j = $j + 1;
}
} else {
$res_fin = "$res_fin$res_str";
}
}
if ($i == 0) $nome=ucfirst($res_fin);
if ($i == 1) $nome_mae=ucfirst($res_fin);
if ($i == 2) $endereco=ucfirst($res_fin);
if ($i == 3) $bairro=ucfirst($res_fin);
}
echo "<br>Nome: $nome";
echo "<br>Nome Mãe: $nome_mae";
echo "<br>Endereço: $endereco";
echo "<br>Bairro: $bairro";
?>

terça-feira, 16 de novembro de 2010

Trabalhando com datas no Banco Oracle

Existem varias maneiras de trazer o resultado esperado em um select simples. Vejam...

SELECT SYSDATE DATA_ATUAL,
ADD_MONTHS(SYSDATE,-1) MENOS_UM_MES,
ADD_MONTHS(SYSDATE,1) MAIS_UM_MES,
LAST_DAY(SYSDATE) ULTIMO_DIA_MES,
TRUNC(SYSDATE,'MONTH') PRIMEIRO_DIA_MES,
MONTHS_BETWEEN(SYSDATE,'01-JAN-2001') QTD_MES,
FLOOR(MONTHS_BETWEEN(SYSDATE,'01-JAN-2001')) ARREDONDA_ABAIXO,
CEIL(MONTHS_BETWEEN(SYSDATE,'01-JAN-2001')) ARREDONDA_ACIMA,
ABS(MONTHS_BETWEEN(SYSDATE,'01-JAN-2001')) VALOR_ABSOLUTO,
ROUND((MONTHS_BETWEEN(SYSDATE,'01-JAN-2001')),2) ARREDONDA,
TRUNC(SYSDATE,'year') PRIMEIRO_DIA_ANO,
to_char(SYSDATE,'dd " DE " FMMONTH " DE " YYYY','nls_date_language=portuguese') DIAMES_EXTENSO,
to_char(SYSDATE,'FMMONTH " DE " YYYY','nls_date_language=portuguese') MES_EXTENSO,
TO_CHAR(SYSDATE,'HH24:MI') HORA_MINUTO,
to_char(sysdate,'FMMonth','nls_date_language=portuguese') mes_corrente,
to_date(lpad(to_char(1234),4,'0'),'hh24mi') dias_data,
Floor(floor(months_between(SYSDATE,SYSDATE)) / 12) IDADE,
decode(TO_NUMBER(TO_CHAR(SYSDATE,'D')),2,'segunda-feira',3,'terça-feira',4,'quarta-feira',
5,'quinta-feira',6,'sexta-feira',7,'sabado',1,'domingo') dia_da_semana
FROM DUAL