Calendário dinâmico

3 respostas
C

Estou precisando do código de geração de calendário dinâmico.
Aquele que qdo clicamos no calendário pequenininho abre o calendário para escolhermos a data desejada.

Desde já agradeço a ajuda!!! :lol:

3 Respostas

J

<!-- insira o seguinte código de javascript em sua página. -->

<script language=‘Javascript’>

// construindo o calendário

function popdate(obj,div,tam,ddd)

{

if (ddd)

{

day = “”

mmonth = “”

ano = “”

c = 1

char = “”

for (s=0;s<parseInt(ddd.length);s++)

{

char = ddd.substr(s,1)

if (char == /)

{

c++;

s++;

char = ddd.substr(s,1);

}

if (c==1) day    += char

if (c==2) mmonth += char

if (c==3) ano    += char

}

ddd = mmonth + / + day + / + ano

}
if(!ddd) {today = new Date()} else {today = new Date(ddd)}
date_Form = eval (obj)
if (date_Form.value == "") { date_Form = new Date()} else {date_Form = new Date(date_Form.value)}

ano = today.getFullYear();
mmonth = today.getMonth ();
day = today.toString ().substr (8,2)

umonth = new Array ("Janeiro", "Fevereiro", "Março", "Abril", "Maio", "Junho", "Julho", "Agosto", "Setembro", "Outubro", "Novembro", "Dezembro")
days_Feb = (!(ano % 4) ? 29 : 28)
days = new Array (31, days_Feb, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31)

if ((mmonth &lt; 0) || (mmonth &gt; 11))  alert(mmonth)
if ((mmonth - 1) == -1) {month_prior = 11; year_prior = ano - 1} else {month_prior = mmonth - 1; year_prior = ano}
if ((mmonth + 1) == 12) {month_next  = 0;  year_next  = ano + 1} else {month_next  = mmonth + 1; year_next  = ano}
txt  = "&lt;table bgcolor='#efefff' style='border:solid #330099; border-width:2' cellspacing='0' cellpadding='3' border='0' width='"+tam+"' height='"+tam*1.1 +"'&gt;"
txt += "&lt;tr bgcolor='#FFFFFF'&gt;&lt;td colspan='7' align='center'&gt;&lt;table border='0' cellpadding='0' width='100%' bgcolor='#FFFFFF'&gt;&lt;tr&gt;"
txt += "&lt;td width=20% align=center&gt;<a href=javascript:popdate('"+obj+"','"+div+"','"+tam+"','"+((mmonth+1).toString() +"/01/"+(ano-1).toString())+"') class='Cabecalho_Calendario' title='Ano Anterior'>&lt;&lt;</a>&lt;/td&gt;"
txt += "&lt;td width=20% align=center&gt;<a href=javascript:popdate('"+obj+"','"+div+"','"+tam+"','"+( "01/" + (month_prior+1).toString() + "/" + year_prior.toString())+"') class='Cabecalho_Calendario' title='Mês Anterior'>&lt;</a>&lt;/td&gt;"
txt += "&lt;td width=20% align=center&gt;<a href=javascript:popdate('"+obj+"','"+div+"','"+tam+"','"+( "01/" + (month_next+1).toString()  + "/" + year_next.toString())+"') class='Cabecalho_Calendario' title='Próximo Mês'>&gt;</a>&lt;/td&gt;"
txt += "&lt;td width=20% align=center&gt;<a href=javascript:popdate('"+obj+"','"+div+"','"+tam+"','"+((mmonth+1).toString() +"/01/"+(ano+1).toString())+"') class='Cabecalho_Calendario' title='Próximo Ano'>&gt;&gt;</a>&lt;/td&gt;"
txt += "&lt;td width=20% align=right&gt;<a href=javascript:force_close('"+div+"') class='Cabecalho_Calendario' title='Fechar Calendário'><b>X</b></a>&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/td&gt;&lt;/tr&gt;"
txt += "&lt;tr&gt;&lt;td colspan='7' align='right' bgcolor='#ccccff' class='mes'&gt;<a href=javascript:pop_year('"+obj+"','"+div+"','"+tam+"','" + (mmonth+1) + "') class='mes'>" + ano.toString() + "</a>"
txt += " <a href=javascript:pop_month('"+obj+"','"+div+"','"+tam+"','" + ano + "') class='mes'>" + umonth[mmonth] + "</a> &lt;div id='popd' style='position:absolute'&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;"
txt += "&lt;tr bgcolor='#330099'&gt;&lt;td width='14%' class='dia' align=center&gt;<b>Dom</b>&lt;/td&gt;&lt;td width='14%' class='dia' align=center&gt;<b>Seg</b>&lt;/td&gt;&lt;td width='14%' class='dia' align=center&gt;<b>Ter</b>&lt;/td&gt;&lt;td width='14%' class='dia' align=center&gt;<b>Qua</b>&lt;/td&gt;&lt;td width='14%' class='dia' align=center&gt;<b>Qui</b>&lt;/td&gt;&lt;td width='14%' class='dia' align=center&gt;<b>Sex<b>&lt;/td&gt;&lt;td width='14%' class='dia' align=center&gt;<b>Sab</b>&lt;/td&gt;&lt;/tr&gt;"
today1 = new Date((mmonth+1).toString() +"/01/"+ano.toString());
diainicio = today1.getDay () + 1;
week = d = 1
start = false;

for (n=1;n&lt;= 42;n++) 
{
    if (week == 1)  txt += "&lt;tr bgcolor='#efefff' align=center&gt;"
    if (week==diainicio) {start = true}
    if (d &gt; days[mmonth]) {start=false}
    if (start) 
    {
        dat = new Date((mmonth+1).toString() + "/" + d + "/" + ano.toString())
        day_dat   = dat.toString().substr(0,10)
        day_today  = date_Form.toString().substr(0,10)
        year_dat  = dat.getFullYear ()
        year_today = date_Form.getFullYear ()
        colorcell = ((day_dat == day_today) &amp;&amp; (year_dat == year_today) ? " bgcolor='#FFCC00' " : "" )
        txt += "&lt;td"+colorcell+" align=center&gt;<a href=javascript:block('"+  d + "/" + (mmonth+1).toString() + "/" + ano.toString() +"','"+ obj +"','" + div +"') class='data'>"+ d.toString() + "</a>&lt;/td&gt;"
        d ++ 
    } 
    else 
    { 
        txt += "&lt;td class='data' align=center&gt; &lt;/td&gt;"
    }
    week ++
    if (week == 8) 
    { 
        week = 1; txt += "&lt;/tr&gt;"} 
    }
    txt += "&lt;/table&gt;"
    div2 = eval (div)
    div2.innerHTML = txt

}

// função para exibir a janela com os meses

function pop_month(obj, div, tam, ano)

{

txt  = <table bgcolor=#CCCCFF border=0 width=80>

for (n = 0; n < 12; n++) { txt += <tr><td align=center><a href=javascript:popdate(’”+obj+"’,’"+div+"’,’"+tam+"’,’"+(01/ + (n+1).toString() + / + ano.toString())+"’)>" + umonth[n] +"</td></tr>" }

txt += </table>

popd.innerHTML = txt

}
// função para exibir a janela com os anos

function pop_year(obj, div, tam, umonth)

{

txt  = <table bgcolor=’#CCCCFF’ border=‘0’ width=160>”

l = 1

for (n=1991; n<2012; n++)

{  if (l == 1) txt += “<tr>”

txt += <td align=center><a href=javascript:popdate(’”+obj+"’,’"+div+"’,’"+tam+"’,’"+(umonth.toString () +"/01/" + n) +"’)>" + n + </td>”

l++

if (l == 4)

{txt += </tr>”; l = 1 }

}

txt += </tr></table>”

popd.innerHTML = txt

}
// função para fechar o calendário

function force_close(div)

{ div2 = eval (div); div2.innerHTML = ‘’}
// função para fechar o calendário e setar a data no campo de data associado

function block(data, obj, div)

{

force_close (div)

obj2 = eval(obj)

obj2.value = data

}

</script>

<!–

o css abaixo é apenas para dar uma aparência melhor para o calendário. vc pode mudá-lo a sua maneira

insira o código abaixo entre as tags <HEAD> </HEAD> de sua página

–>

<style>

.dia {font-family: helvetica, arial; font-size: 8pt; color: #FFFFFF}

.data {font-family: helvetica, arial; font-size: 8pt; text-decoration:none; color:#191970}

.mes {font-family: helvetica, arial; font-size: 8pt}

.Cabecalho_Calendario {font-family: helvetica, arial; font-size: 10pt; color: #000000; text-decoration:none; font-weight:bold}

</style>

<!-- insira o código abaixo dentro das tags de sua página -->
<form name=‘form1’>

<!-- data 1 -->





<!

na span abaixo aparece o primeiro calendario.

vc pode colocar a span abaixo no lugar onde quiser em sua

pagina inclusive dentro de uma table para facilitar o

posicionamento. Mas lembre-se que quanto mais perto a span

estiver do campo de data a ela associada mais fácil será para

o usuario associar.

>

<span id=“pop1” style=“position:absolute”></span>

<!-- data 2 -->





<!-- na span abaixo aparece o segundo calendario -->

<span id=“pop2” style=“position:absolute”></span>

<!–
caso queira inserir outros campos de data em sua página
certifique-se de substituir corretamente os nomes dos
objetos em javascript.
EX: o objeto input text será o data3 - ou como vc quiser
o objeto button será o btnData3 - ou como vc quiser
nas chamadas das funçoes no evento onClick os nomes
deverão referenciar seus respectivos objetos.
–>
</form>

J

Desculpem esqueço de desativar o HTML sempre!!!

<!-- insira o seguinte código de javascript em sua página. -->

<script language=‘Javascript’>

// construindo o calendário

function popdate(obj,div,tam,ddd)

{

if (ddd)

{

day = “”

mmonth = “”

ano = “”

c = 1

char = “”

for (s=0;s<parseInt(ddd.length);s++)

{

char = ddd.substr(s,1)

if (char == /)

{

c++;

s++;

char = ddd.substr(s,1);

}

if (c==1) day    += char

if (c==2) mmonth += char

if (c==3) ano    += char

}

ddd = mmonth + / + day + / + ano

}
if(!ddd) {today = new Date()} else {today = new Date(ddd)}
date_Form = eval (obj)
if (date_Form.value == "") { date_Form = new Date()} else {date_Form = new Date(date_Form.value)}

ano = today.getFullYear();
mmonth = today.getMonth ();
day = today.toString ().substr (8,2)

umonth = new Array ("Janeiro", "Fevereiro", "Março", "Abril", "Maio", "Junho", "Julho", "Agosto", "Setembro", "Outubro", "Novembro", "Dezembro")
days_Feb = (!(ano % 4) ? 29 : 28)
days = new Array (31, days_Feb, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31)

if ((mmonth &lt; 0) || (mmonth &gt; 11))  alert(mmonth)
if ((mmonth - 1) == -1) {month_prior = 11; year_prior = ano - 1} else {month_prior = mmonth - 1; year_prior = ano}
if ((mmonth + 1) == 12) {month_next  = 0;  year_next  = ano + 1} else {month_next  = mmonth + 1; year_next  = ano}
txt  = "&lt;table bgcolor='#efefff' style='border:solid #330099; border-width:2' cellspacing='0' cellpadding='3' border='0' width='"+tam+"' height='"+tam*1.1 +"'&gt;"
txt += "&lt;tr bgcolor='#FFFFFF'&gt;&lt;td colspan='7' align='center'&gt;&lt;table border='0' cellpadding='0' width='100%' bgcolor='#FFFFFF'&gt;&lt;tr&gt;"
txt += "&lt;td width=20% align=center&gt;&lt;a href=javascript:popdate('"+obj+"','"+div+"','"+tam+"','"+((mmonth+1).toString() +"/01/"+(ano-1).toString())+"') class='Cabecalho_Calendario' title='Ano Anterior'&gt;&lt;&lt;&lt;/a&gt;&lt;/td&gt;"
txt += "&lt;td width=20% align=center&gt;&lt;a href=javascript:popdate('"+obj+"','"+div+"','"+tam+"','"+( "01/" + (month_prior+1).toString() + "/" + year_prior.toString())+"') class='Cabecalho_Calendario' title='Mês Anterior'&gt;&lt;&lt;/a&gt;&lt;/td&gt;"
txt += "&lt;td width=20% align=center&gt;&lt;a href=javascript:popdate('"+obj+"','"+div+"','"+tam+"','"+( "01/" + (month_next+1).toString()  + "/" + year_next.toString())+"') class='Cabecalho_Calendario' title='Próximo Mês'&gt;&gt;&lt;/a&gt;&lt;/td&gt;"
txt += "&lt;td width=20% align=center&gt;&lt;a href=javascript:popdate('"+obj+"','"+div+"','"+tam+"','"+((mmonth+1).toString() +"/01/"+(ano+1).toString())+"') class='Cabecalho_Calendario' title='Próximo Ano'&gt;&gt;&gt;&lt;/a&gt;&lt;/td&gt;"
txt += "&lt;td width=20% align=right&gt;&lt;a href=javascript:force_close('"+div+"') class='Cabecalho_Calendario' title='Fechar Calendário'&gt;&lt;b&gt;X&lt;/b&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/td&gt;&lt;/tr&gt;"
txt += "&lt;tr&gt;&lt;td colspan='7' align='right' bgcolor='#ccccff' class='mes'&gt;&lt;a href=javascript:pop_year('"+obj+"','"+div+"','"+tam+"','" + (mmonth+1) + "') class='mes'&gt;" + ano.toString() + "&lt;/a&gt;"
txt += " &lt;a href=javascript:pop_month('"+obj+"','"+div+"','"+tam+"','" + ano + "') class='mes'&gt;" + umonth[mmonth] + "&lt;/a&gt; &lt;div id='popd' style='position:absolute'&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;"
txt += "&lt;tr bgcolor='#330099'&gt;&lt;td width='14%' class='dia' align=center&gt;&lt;b&gt;Dom&lt;/b&gt;&lt;/td&gt;&lt;td width='14%' class='dia' align=center&gt;&lt;b&gt;Seg&lt;/b&gt;&lt;/td&gt;&lt;td width='14%' class='dia' align=center&gt;&lt;b&gt;Ter&lt;/b&gt;&lt;/td&gt;&lt;td width='14%' class='dia' align=center&gt;&lt;b&gt;Qua&lt;/b&gt;&lt;/td&gt;&lt;td width='14%' class='dia' align=center&gt;&lt;b&gt;Qui&lt;/b&gt;&lt;/td&gt;&lt;td width='14%' class='dia' align=center&gt;&lt;b&gt;Sex&lt;b&gt;&lt;/td&gt;&lt;td width='14%' class='dia' align=center&gt;&lt;b&gt;Sab&lt;/b&gt;&lt;/td&gt;&lt;/tr&gt;"
today1 = new Date((mmonth+1).toString() +"/01/"+ano.toString());
diainicio = today1.getDay () + 1;
week = d = 1
start = false;

for (n=1;n&lt;= 42;n++) 
{
    if (week == 1)  txt += "&lt;tr bgcolor='#efefff' align=center&gt;"
    if (week==diainicio) {start = true}
    if (d &gt; days[mmonth]) {start=false}
    if (start) 
    {
        dat = new Date((mmonth+1).toString() + "/" + d + "/" + ano.toString())
        day_dat   = dat.toString().substr(0,10)
        day_today  = date_Form.toString().substr(0,10)
        year_dat  = dat.getFullYear ()
        year_today = date_Form.getFullYear ()
        colorcell = ((day_dat == day_today) &amp;&amp; (year_dat == year_today) ? " bgcolor='#FFCC00' " : "" )
        txt += "&lt;td"+colorcell+" align=center&gt;&lt;a href=javascript:block('"+  d + "/" + (mmonth+1).toString() + "/" + ano.toString() +"','"+ obj +"','" + div +"') class='data'&gt;"+ d.toString() + "&lt;/a&gt;&lt;/td&gt;"
        d ++ 
    } 
    else 
    { 
        txt += "&lt;td class='data' align=center&gt; &lt;/td&gt;"
    }
    week ++
    if (week == 8) 
    { 
        week = 1; txt += "&lt;/tr&gt;"} 
    }
    txt += "&lt;/table&gt;"
    div2 = eval (div)
    div2.innerHTML = txt

}

// função para exibir a janela com os meses

function pop_month(obj, div, tam, ano)

{

txt  = <table bgcolor=#CCCCFF border=0 width=80>

for (n = 0; n < 12; n++) { txt += <tr><td align=center><a href=javascript:popdate(’”+obj+"’,’"+div+"’,’"+tam+"’,’"+(01/ + (n+1).toString() + / + ano.toString())+"’)>" + umonth[n] +"</a></td></tr>" }

txt += </table>

popd.innerHTML = txt

}
// função para exibir a janela com os anos

function pop_year(obj, div, tam, umonth)

{

txt  = <table bgcolor=’#CCCCFF’ border=‘0’ width=160>”

l = 1

for (n=1991; n<2012; n++)

{  if (l == 1) txt += “<tr>”

txt += <td align=center><a href=javascript:popdate(’”+obj+"’,’"+div+"’,’"+tam+"’,’"+(umonth.toString () +"/01/" + n) +"’)>" + n + </a></td>”

l++

if (l == 4)

{txt += </tr>”; l = 1 }

}

txt += </tr></table>”

popd.innerHTML = txt

}
// função para fechar o calendário

function force_close(div)

{ div2 = eval (div); div2.innerHTML = ‘’}
// função para fechar o calendário e setar a data no campo de data associado

function block(data, obj, div)

{

force_close (div)

obj2 = eval(obj)

obj2.value = data

}

</script>

<!–

o css abaixo é apenas para dar uma aparência melhor para o calendário. vc pode mudá-lo a sua maneira

insira o código abaixo entre as tags <HEAD> </HEAD> de sua página

–>

<style>

.dia {font-family: helvetica, arial; font-size: 8pt; color: #FFFFFF}

.data {font-family: helvetica, arial; font-size: 8pt; text-decoration:none; color:#191970}

.mes {font-family: helvetica, arial; font-size: 8pt}

.Cabecalho_Calendario {font-family: helvetica, arial; font-size: 10pt; color: #000000; text-decoration:none; font-weight:bold}

</style>

<!-- insira o código abaixo dentro das tags <BODY> </BODY> de sua página -->
<form name=‘form1’>

<!-- data 1 -->
<input NAME=“data1” SIZE=“10” MAXLENGTH=“10” value="">
<input TYPE=“button” NAME=“btnData1” VALUE="…" Onclick=“javascript:popdate(‘document.form1.data1’,‘pop1’,‘150’,document.form1.data1.value)”>
<!–
na span abaixo aparece o primeiro calendario.
vc pode colocar a span abaixo no lugar onde quiser em sua
pagina inclusive dentro de uma table para facilitar o
posicionamento. Mas lembre-se que quanto mais perto a span
estiver do campo de data a ela associada mais fácil será para
o usuario associar.
–>

<span id=“pop1” style=“position:absolute”></span>

<br><br>
<!-- data 2 -->
<input NAME=“data2” SIZE=“10” MAXLENGTH=“10” value="">
<input TYPE=“button” NAME=“btnData2” VALUE="…" Onclick=“javascript:popdate(‘document.form1.data2’,‘pop2’,‘150’,document.form1.data2.value)”>
<!-- na span abaixo aparece o segundo calendario -->
<span id=“pop2” style=“position:absolute”></span>

<!–
caso queira inserir outros campos de data em sua página
certifique-se de substituir corretamente os nomes dos
objetos em javascript.
EX: o objeto input text será o data3 - ou como vc quiser
o objeto button será o btnData3 - ou como vc quiser
nas chamadas das funçoes no evento onClick os nomes
deverão referenciar seus respectivos objetos.
–>
</form>

T

Gostaria de saber se alguém tem esse código para o servidor. Pois se a data da máquina do cliente estiver errada, babaus. Meus clientes são leigos e eu preciso retornar a hora do servidor.

Ats
Thiago

Criado 11 de agosto de 2003
Ultima resposta 11 de ago. de 2003
Respostas 3
Participantes 3