Ir para conteúdo
Fórum Script Brasil
  • 0

Ajuda com desenvolvimento de calendário


phillippimenta

Pergunta

Fala pessoal beleza?

Estou desenvolvendo este calendário em javascript e gostaria da ajuda de vocês para saber de vocês como eu faço para exibi o mês ou ano que o usuário selecionou na caixa de seleção. Segue o código para vocês darem uma olahda:

calendario.html

<html>
<head>
<title>Calendário</title>
<script src="calendario.js" language="JavaScript"></script>
</head>
<body>
<script language="JavaScript">
/*

*************************************
                                    *
 Definindo o idioma padrão (BR)     *
                                    *
    Idioma    Código            *
                                    *
    Inglês     USA              *
                                    *
       Português   BRA              *
                                    *   
*************************************

*************************************
                                    *
 Setting the default language (EUA) *
                                    *
    Language    Code            *
                                    *
    English     USA             *
                                    *
       Portuguese   BRA             *
                                    *   
*************************************

*/

// Função para inclusão do calendário na página

// Function for inclusion in the calendar page

calendario("BRA");
</script>
</body>
</html>
calendario.js
/*

================================
                               =
    Calendário             =
                               =
    Versão 1.0             ==================================================================
                Autor: Phillip Pimenta - phillippimenta@gmail.com                                                                         ==================================================================
                               =
                               =
================================

*/

function calendario(idioma){

    var s = new Date().getDay(); //0=Domingo Dia da Semana

    var d = new Date().getDate(); //Dia do mês

    var m = new Date().getMonth(); //0=janeiro Mês
    
    var Y = new Date().getFullYear();

    var inicio_mes = new Date(Y,m,1);

    var inicio = inicio_mes.getDay();

    // Estrutura condicional para verificação de anos bissextos

    if(Y%400 == 0)
    {
    var fevereiro = 29;
    }
    else if(Y%100 == 0)
    {
    var fevereiro = 28;
    }
    else if(Y%4 == 0)
    {
    var fevereiro = 29;
    }
    else
    {
    var fevereiro = 28;
    }

    // Fim da estrutura condicional de anos bissextos
    
    var diasmes = new Array(31,fevereiro,31,30,31,30,31,31,30,31,30,31);

    switch(idioma){

    case "BRA":
    var mes = new Array("Janeiro","Fevereiro","Março","Abril","Maio","Junho","Julho",
    "Agosto","Setembro","Outubro","Novembro","Dezembro");
    break;

    case "USA":
    var mes = new Array("January","February","March","April","May","","July",
    "August","September","October","November","December");
    break;

    default:
    break;

    }

    var c = 0 + inicio;

    document.write("<table cellpadding=2 cellspacing=2 style='width:190;border: 1px solid #BBBBBB;font-family: Verdana;font-size: 11px;color: #000000;'><tr>");

    document.write("<td align=center colspan=7 BGCOLOR=#EFEFEF style=height:30;>"); 

    document.write("<select name=selecaomes style=height:30;width:115;>");

    document.write("<option value=0>Janeiro</option>");
    document.write("<option value=1>Fevereiro</option>");
    document.write("<option value=2>Março</option>");
    document.write("<option value=3>Abril</option>");
    document.write("<option value=4>Maio</option>");
    document.write("<option value=5>Junho</option>");
    document.write("<option value=6>Julho</option>");
    document.write("<option value=7>Agosto</option>");
    document.write("<option value=8 selected>Setembro</option>");
    document.write("<option value=9>Outubro</option>");
    document.write("<option value=10>Novembro</option>");
    document.write("<option value=11>Dezembro</option>");

    document.write("</select> "); 

    document.write("<select name=selecaoano style=height:30;width:60; onChange=definir_ano(this.options.value)");
    
    for(a=1;a<5;a++)
    {
    antecessor = Y - (5 - a); 
    document.write("<option value="+antecessor+">"+antecessor+"</option>");
    }

    document.write("<option value="+Y+" selected>"+Y+"</option>");

    for(s=1;s<4;s++)
    {
    sucessor = Y + s; 
    document.write("<option value="+sucessor+">"+sucessor+"</option>");
    }

    document.write("</select></td>");

    document.write("</tr><tr><td align=center> D </td><td align=center> S </td><td align=center> T </td><td align=center>     Q </td><td align=center> Q </td><td align=center> S </td><td align=center> S </td></tr><tr colspan=7>");

    for(t = 0;t<inicio;t++)
    {
    document.write("<td align=center>&nbsp;</td>");
    }

    for(i=1;i<=diasmes[m];i++)
    {
    c++;

    if(i == d)
    {
    document.write("<td align=center bgcolor=#DEDEFF style='border: 1px solid #BBBBBB;'><b>"+i+"</b></td>");
    }
    else
    {
    document.write("<td align=center>"+i+"</td>");
    }

    if(c%7 == 0)
    {
    document.write("</tr><tr colspan=7>");
    }

    }

    document.write("</table>");
}

Agradeço desde de já a todos que me ajudarem.

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0

Cara, eu particularmente acho meio complicado fazer calendário. Eu admito que é uma deficiência séria minha rsrs.

Tem um monte pronto na net, inclusive deve ter algum plugin em jQuery pra poupar tempo e tal. No scriptBrasil deve ter um monte de calendário pronto. Dá uma olhada lá.

De qualquer maneira, fique sabendo que suas funções de calendário são estáticas, só podem ser executadas uma vez só. Para fazer funções onde o calendário mude a partir da seleção, deve utilizar DOM para manipular os elementos da tabela.

Tem algum algoritmo pronto pra calcular os dias, semanas, anos bissextos.., precisa só procurar.

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...