You are on page 1of 13

11.

MANIPULANDO DATAS
Existe apenas uma funo para que se possa obter a data e a hora. a funo Date(). Esta funo devolve data e hora no formato: Dia da semana, Nome do ms, Dia do ms, Hora:Minuto:Segundo e Ano. Ex.: Fri May 24 16:58:02 1996 Para se obter os dados separadamente, existem os seguintes mtodos: getDate() - Obtm o dia do ms (numrico de 1 a 31) getDay() - Obtm o dia da semana (0 a 6) getMonth() - Obtm o ms (numrico de 0 a 11) getYear() - Obtm o ano getHours() - Obtm a hora (numrico de 0 a 23) getMinutes() - Obtm os minutos (numrico de 0 a 59) getSeconds() - Obtm os segundos (numrico de 0 a 59) No exemplo abaixo obteremos o dia da semana. Para tal, utilizaremos a varivel DataToda para armazenar data/hora e a varivel DiaHoje para armazenar o nmero do dia da semana. DataToda = new Date() DiaHoje = DataToda.getDay() Para obter o dia da semana alfa, teremos que construir uma tabela com os dias da semana e utilizar a varivel DiaHoje como indexador. function CriaTab (n) { this.length = n for (var x = 1 ; x<= n ; x++) { this[x] = " " } } NomeDia = new CriaTab(7) NomeDia[0] = " Domingo "

NomeDia[1] = " Segunda " NomeDia [2] = " Tera " NomeDia[3] = " Quarta " NomeDia[4] = " Quinta " NomeDia[5] = " Sexta " NomeDia[6] = " Sbado " DiaSemana = NomeDia[DiaHoje] Para criar uma varivel tipo Date com o contedo informado pela aplicao, existe o mtodo set. Assim, temos os seguintes mtodos: setDate, setDay, setMonth, setYear, setHours, setMinutes e setSeconds. Seguindo o exemplo acima, para mudar o ms para novembro, teramos: DataToda.setMonth(10)

14. USAR O TIMER e DATE


um mtodo que permite a programao para que uma determinada aco s ocorra aps o transcurso de um determinado tempo. Varivel = setTimeout ( "ao ", tempo) Onde: Varivel uma varivel apenas para controle do timer aco a aco que se quer realizar. tempo o tempo de espera para que a aco ocorra, em milisegundos. Obs.: importante observar que a aco s ocorrer uma vez. Para que a aco volte a ocorrer, ser necessrio repetir o comando dentro da aco, obtendo-se, assim, um LOOP. Para interromper um LOOP, provocado pela forma acima, deve-se utilizar o seguinte mtodo: clearTimeout (Varivel) Onde: Varivel o nome da varivel de controle do timer. Abaixo encontra-se um exemplo de um formulrio que apresenta a data e hora actual, actualizando os dados a cada um segundo, tendo dois botes de rdio que tem a funo de activar e desactivar a actualizao dos dados. Apresenta tambm, fora do formulrio, a data contendo dia e ms por extenso. <script> function Hoje() { ContrRelogio = setTimeout ( "Hoje() ", 1000) Hr = new Date() dd = Hr.getDate() mm = Hr.getMonth() + 1 aa = Hr.getYear() hh = Hr.getHours()

min = Hr.getMinutes() seg = Hr.getSeconds() DataAtual = ((dd < 10) ? " 0 " + dd + " / " : dd + " / ") DataAtual += ((mm < 10) ? " 0 " + mm + " / " + aa : mm + " / " + aa) HoraAtual = ((hh < 10) ? " 0 " + hh + " : " : hh + " : ") HoraAtual += ((min < 10) ? " 0 " + min + " : " : min + " : ") HoraAtual += ((seg < 10) ? " 0 " + seg : seg) document.DataHora.Data.value=DataAtual document.DataHora.Hora.value=HoraAtual } // function CriaArray (n) { this.length = n } // NomeDia = new CriaArray(7) NomeDia[0] = " Domingo " NomeDia[1] = " Segunda " NomeDia[2] = " Tera " NomeDia[3] = " Quarta " NomeDia[4] = " Quinta " NomeDia[5] = " Sexta " NomeDia[6] = " Sbado " // NomeMes = new CriaArray(12) NomeMes[0] = " Janeiro "

NomeMes[1] = " Fevereiro " NomeMes[2] = " Maro " NomeMes[3] = " Abril " NomeMes[4] = " Maio " NomeMes[5] = " Junho " NomeMes[6] = " Julho " NomeMes[7] = " Agosto " NomeMes[8] = " Setembro " NomeMes[9] = " Outubro " NomeMes[10] = " Novembro " NomeMes[11] = " Dezembro " // Data1 = new Date() dia = Data1.getDate() dias = Data1.getDay() mes = Data1.getMonth() ano = Data1.getYear() document.write ( "Recife, " + NomeDia[dias] + " " + dia + " de " + NomeMes[mes] + " de " + (ano + 1900 ) ) </script> <form name= "DataHora "> Data :<input type=text size=10 maxlength=10 name= "Data "> Hora : <input type=text size=10 maxlength=10 name= "Hora "> <input type=radio name= "Botao " value= "Para Relogio " checked onclick= "clearTimeout(ContrRelogio) ">Desativa <input type=radio name= "Botao " value= "Ativa Relogio "

onclick= "ContrRelogio = setTimeout(Hoje(), 1000) ">Ativa </form>

http://www.vas-y.com/dicas/curso/java/14.htm

Sobre este objeto recai todo o trabalho com datas em Javascript, como obter uma data, o dia, a hora e outras coisas. Para trabalhar com datas necessitamos instanciar um objeto da classe Date e com ele j podemos realizar as operaes que necessitamos. Um objeto da classe Date pode ser criado de duas maneiras distintas. Por um lado podemos criar o objeto com o dia e hora atuais e por outro podemos cria-lo com um dia e hora distintos aos atuais. Isto depende dos parmetros que passemos ao construir os objetos. Para criar um objeto fecha com o dia e hora atuais, colocamos os parnteses vazios ao chamar ao construtor da classe Date. minhaData = new Date() Para criar um objeto data com um dia e hora diferentes dos atuais temos que indicar entre parnteses o momento para iniciar o objeto. Existem vrias maneiras de expressar um dia e hora vlida, por isso podemos construir uma data nos guiando por vrios esquemas. Estes so dois deles, suficientes para criar todo tipo de datas e horas. minhaData = new Date(ano,ms,dia,hora,minutos,segundos) minhaData = new Date(ano,ms,dia) Os valores que deve receber o construtor so sempre numricos. Um detalhe, o ms comea por 0, ou seja, janeiro o ms 0. Se no indicamos a hora, o objeto data se cria com hora 00:00:00. Os objetos da classe Date no tm propriedades, mas existem um monto de mtodos que tm, vamos v-los agora. getDate() Devolve o dia do ms. getDay() Devolve o dia da semana. getHours() Retorna a hora.

getMinutes() Devolve os minutos. getMonth() Devolve o ms (ateno ao ms que comea por 0). getSeconds() Devolve os segundos. getTime() Devolve os segundos transcorridos entre o dia 1 de janeiro de 1970 e a data correspondente ao objeto ao que se passa a mensagem. getYear() Retorna o ano, ao que se restou 1900. Por exemplo, para o 1995 retorna 95, para o 2005 retorna 105. Este mtodo est obsoleto em Netscape a partir da verso 1.3 de Javascript e agora se utiliza getFullYear(). getFullYear() Retorna o ano com todos os dgitos. Usar este mtodo para estar certos de que funcionar todo bem em datas posteriores ao ano 2000. setDate() Atualiza o dia do ms. setHours() Atualiza a hora. setMinutes() Muda os minutos. setMonth() Muda o ms (ateno ao ms que comea por 0). setSeconds() Muda os segundos. setTime() Atualiza a data completa. Recebe um nmero de segundos desde 1 de janeiro de 1970. setYear() Muda o ano recebe um nmero, ao que lhe soma 1900 antes de coloca como ano da data. -lo Por exemplo, se recebe 95 colocar o ano 1995. Este mtodo est obsoleto a partir de Javascript 1.3 em Netscape. Agora se utiliza setFullYear(), indicando o ano com todos os

dgitos. setFullYear() Muda o ano da data ao nmero que recebe por parmetro. O nmero se indica completo ex: 2005 ou 1995. Utilizar este mtodo para estar certo de que tudo funciona para datas posteriores a 2000. Como foi possvel apreciar, h algum mtodo obsoleto por questes relativas ao ano 2000: setYear() e getYear(). Estes mtodos se comportam bem na Internet Explorer e no nos dar nenhum problema utiliza-los. Entretanto, no funcionaro corretamente em Netscape, portanto interessante utilizarmos em seu lugar os mtodos getFullYear() e setFullYear(), que funcionam bem em Netscape e Internet Explorer.

Neste exemplo vamos criar duas datas, uma com o instante atual e outra com data do passado. Em seguida, imprimiremos as duas e extrairemos seu ano para imprimi-lo tambm. Logo, atualizaremos o ano de uma das datas e voltaremos a escreve-la com um formato mais legvel. //nestas linhas criamos as datas minhaDataaAtual = new Date() minhaDataPassada = new Date(1998,4,23) //nestas linhas imprimimos as datas. document.write (minhaDataAtual) document.write ("<br>") document.write (minhaDtaPassada) //extramos o ano das duas datas anoAtual = minhaDataAtual.getFullYear() anoPassado = minhaDataPassada.getFullYear() //Escrevemos em ano na pgina document.write("<br>O ano atual : " + anoAtual) document.write("<br>O ano passado : " + anoPassado) //mudamos o ano na data atual minhaDataAtual.setFullYear(2005) //extramos o dia, ms e ano dia = minhaDataAtual.getDate() mes = parseInt(minhaDataAtual.getMonth()) + 1 ano = minhaDataAtual.getFullYear() //escrevemos a data em um formato legvel document.write ("<br>") document.write (dia + "/" + mes + "/" + ano) H que destacar um detalhe antes de terminar, que o nmero do ms pode comear desde 0. Pelo menos no Netscape com o qual realizamos as provas comeava o ms em 0. Por esta razo somamos um ao ms que devolve o mtodo getMonth. Existem mais detalhes para destacar, pois que no Netscape o mtodo getFullYear() devolve os anos transcorridos desde 1900, com o qual ao obter o ano de uma data de, por exemplo, 2005, indica que o ano 105. Para obter o ano completo temos a nossa disposio o mtodo getFullYear() que devolveria 2005 da mesma forma que em Netscape e Internet Explorer. Muita ateno no trabalho com datas em distintas plataformas, visto que poderia ser

problemtico o fato de oferecerem distintas sadas aos mtodos de manejo de datas, dependendo sempre da marca e verso de nosso navegador.

http://www.criarweb.com/javascript2/

13. Focar um Objecto


Este mtodo permite que o cursor seja activado em um determinado objecto (focado). Isso pode ser feito na carga do documento, a partir da ocorrncia de um evento ou mesmo dentro de uma funo. Observe que at agora o usurio tinha que dar um " Click " para focar o objecto desejado. De forma semelhante existe o mtodo " Select ". Este mtodo marca o contedo do objecto com uma tarja roxa, permitindo ao usurio, em caso de substituio do contedo do campo, no ter que apagar o contedo anterior, pois, com este mtodo, a deleo dse de forma automtica quando da digitao do novo contedo. Os mtodos " Focus " e " Select " podem ser utilizados nos seguintes objectos: password, select, text e textarea. No exemplo abaixo, utilizaremos o evento onload para setar o focus para o primeiro objecto do formulrio e os mtodos focus e select para, na rotina de crtica dos dados, focar o objecto que contiver erro de preenchimento. Ex.: <body onload= "document.TstFocus.Nome.focus() "> <script> DdosOk = true function Criticar() { DadosOk = false DataAtual = new Date() MesAtual = DataAtual.getMonth() + 1 AnoAtual = DataAtual.getYear() + 1900 Nome = document.TstFocus.Nome.value Mes = parseInt(document.TstFocus.Mes.value) Ano = parseInt (document.TstFocus.Ano.value) // if (Ano < 1900) {Ano = Ano + 1900 } if (Nome == " ")

{ alert ( "Informe o seu Nome, No deixe em branco ") document.TstFocus.Nome.focus() return } if (Mes < 1 || Mes > 12) { alert ( "O Ms informado no vlido, informe corretamente ") document.TstFocus.Mes.focus() document.TstFocus.Mes.select() return } if (Ano == AnoAtual && Mes > MesAtual) { alert ( "O perodo informado superior a data atual ") document.TstFocus.Mes.focus() document.TstFocus.Mes.select() return } if (Ano < 1996 || Ano > AnoAtual) { alert ( "O Ano informado no vlido, informe corretamente ") document.TstFocus.Ano.focus() document.TstFocus.Ano.select() return } DadosOk = true } </script> <form name= "TstFocus " method= "POST "> <p> Informe o seu Nome <input type=text size=30 maxlength=30 name= "Nome "> </p>

<p> Informe o ms desejado <input type=text size=2 maxlength=2 name= "Mes "> </p> <p> Informe o ano desejado <input type=text size=4 maxlength=4 name= "Ano " > </p> <p> <input type=button name= "Testa " value= "Testar Validade " onclick= "Criticar() if (DadosOk) {alert (Todos os Dados esto Corretos) } " > </p> </form> </body>

You might also like