Ir ao conteúdo
  • Cadastre-se

marvelous12

Membro Júnior
  • Posts

    4
  • Cadastrado em

  • Última visita

posts postados por marvelous12

  1. preciso fazer um calendario que calcule o primeiro de janeiro a a partir da data do primeiro de janeiro, mas estou com dificuldade pois tenho que  printar na tela como matriz com 6 linhas 2 duas colunas mas so consigo printar as primeira linha  com janeiro e fevereiro,pfv quem puder ajuda me ajuda

    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    
    int i; //mes
    int j; //dia
    int k;
    int data;
    int cont = 0; //quebra linha
    int ano, mes, dia, bis, bar, linhaCalendario, inicioMes;
    int diasMes;
    int dias_esq = 0;
    int dias_dir = 1;
    
    
    int g, c, x, z, e, d, n,m;
    int inicioMes;
    int mesDias[] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
    char *meses[12] =
        {
            "Janeiro",
            "Fevereiro",
            "Marco",
            "Abril",
            "Maio",
            "Junho",
            "Julho",
            "Agosto",
            "Setembro",
            "Outubro",
            "Novembro",
            "Dezembro"};
            
    int janeiro_dias[] = 
    {
         1,  2,  3,  4,  5,  6,  7,
         8,  9, 10, 11, 12, 13, 14,
        15, 16, 17, 18, 19, 20, 21,
        22, 23, 24, 25, 26, 27, 28,
        29, 30, 31
    };
    
    int fevereiro_dias[] = 
    {
         1,  2,  3,  4,  5,  6,  7,
         8,  9, 10, 11, 12, 13, 14,
        15, 16, 17, 18, 19, 20, 21,
        22, 23, 24, 25, 26, 27, 28,29
    };
    int marco_dias[] = 
    {
         1,  2,  3,  4,  5,  6,  7,
         8,  9, 10, 11, 12, 13, 14,
        15, 16, 17, 18, 19, 20, 21,
        22, 23, 24, 25, 26, 27, 28,
        29, 30,31
    };
    int abril_dias[] = 
    {
         1,  2,  3,  4,  5,  6,  7,
         8,  9, 10, 11, 12, 13, 14,
        15, 16, 17, 18, 19, 20, 21,
        22, 23, 24, 25, 26, 27, 28,
        29, 30
    };
    int maio_dias[] = 
    {
         1,  2,  3,  4,  5,  6,  7,
         8,  9, 10, 11, 12, 13, 14,
        15, 16, 17, 18, 19, 20, 21,
        22, 23, 24, 25, 26, 27, 28,
        29, 30, 31
    };
    int junho_dias[] = 
    {
         1,  2,  3,  4,  5,  6,  7,
         8,  9, 10, 11, 12, 13, 14,
        15, 16, 17, 18, 19, 20, 21,
        22, 23, 24, 25, 26, 27, 28,
        29, 30
    };
    int julho_dias[] = 
    {
         1,  2,  3,  4,  5,  6,  7,
         8,  9, 10, 11, 12, 13, 14,
        15, 16, 17, 18, 19, 20, 21,
        22, 23, 24, 25, 26, 27, 28,
        29, 30, 31
    };
    int agosto_dias[] = 
    {
         1,  2,  3,  4,  5,  6,  7,
         8,  9, 10, 11, 12, 13, 14,
        15, 16, 17, 18, 19, 20, 21,
        22, 23, 24, 25, 26, 27, 28,
        29, 30,31
    };
    int setembro_dias[] = 
    {
         1,  2,  3,  4,  5,  6,  7,
         8,  9, 10, 11, 12, 13, 14,
        15, 16, 17, 18, 19, 20, 21,
        22, 23, 24, 25, 26, 27, 28,
        29, 30
    };
    int outubro_dias[] = 
    {
         1,  2,  3,  4,  5,  6,  7,
         8,  9, 10, 11, 12, 13, 14,
        15, 16, 17, 18, 19, 20, 21,
        22, 23, 24, 25, 26, 27, 28,
        29, 30,31
    };
    int novembro_dias[] = 
    {
         1,  2,  3,  4,  5,  6,  7,
         8,  9, 10, 11, 12, 13, 14,
        15, 16, 17, 18, 19, 20, 21,
        22, 23, 24, 25, 26, 27, 28,
        29, 30
    };
    int dezembro_dias[] = 
    {
         1,  2,  3,  4,  5,  6,  7,
         8,  9, 10, 11, 12, 13, 14,
        15, 16, 17, 18, 19, 20, 21,
        22, 23, 24, 25, 26, 27, 28,
        29, 30,31
    };
    
    
    
    int main()
    {
        printf("Digite o ano: ");
        scanf("%d", &ano);
    
       
    
        //P A S C O A
    
        g = (ano % 19) + 1;               //resto inteiro - AUREO
        c = (ano / 100) + 1;              //SECULO
        x = ((3 * c) / 4) - 12;           //correção 1
        z = (((8 * c) + 5) / 25) - 5;     //correção 2
        e = ((11 * g) + 20 + z - x) % 30; //resto inteiro
    
        //EPACTA
        if ((e == 25 && g > 11) || e == 24)
        {
            e++;
        }
    
        //LUA CHEIA
        n = 44 - e;
        if (n < 21)
        {
            n += 30;
        }
    
        //DOMINGO DE PASCOA fa?a N = 44 - E. Se N < 21,
        d = ((5 * ano) / 4) - (x + 10);
        data = (n + 7) - ((d + n) % 7);
    
        if (data > 31)
        {
            data = data - 31;
            printf("Pascoa: %d de abril ", data);
            mes = 4;
        }
        else
        {
            printf("Pascoa: %d de marco ", data);
            mes = 3;
        }
    
        int y = ano;
    
        if (y % 100 == 0)
        {
            y = y / 100;
        }
    
        printf("%d\n", y);
        if (y % 4 == 0)
        {
            printf("bissexto\n");
        }
        else
        {
            printf("nao e bissexto\n");
        }
        
            printf("Calendario do ano %d\n", ano);
            printf("\n|-----------------------------||-----------------------------|\n");
        
            printf("|%-29s||%-29s|", meses[0], meses[1]);
        
            printf("\n|-----------------------------||-----------------------------|");
            printf("\n| dom seg ter qua qui sex sab || dom seg ter qua qui sex sab |\n|");
    
        // Esse primeiro for roda 5 vezes. Pois o calend�rio possui 5 linhas.
        
        for (int i = 0; i < 5; i++)
        {   
            
            int control_dir = 3;
            // Este for abaixo � para imprimir os meses da coluna � esquerda.
            // Ele roda 35 vezes, pois em um calend�rio existem 35 espa�os (7 dias x 5 linhas = 35 espa�os)
            for (; dias_esq < 35; dias_esq++)
            {
                
                // A cada 7 dias, imprime duas barras || e pula para o proximo for, atrav�s do comando break
                if(dias_esq == 6 || dias_esq == 13 || dias_esq == 20 || dias_esq == 27)
                {
                    printf("  %.2d", janeiro_dias[dias_esq - control_dir]);
                    printf(" ||");
                    dias_esq++;
                    break; // O pr�ximo for vai ser executado, imprimindo agora os dias da coluna � direita
                }
                else if (dias_esq >= 34)
                {
                    printf("  -- ||");
                }
                else if (dias_esq > (30 + control_dir) || dias_esq <= (control_dir - 1))
                {
                    printf("  --");
                }
                else
                {
                    printf("  %.2d", marco_dias[dias_esq - control_dir]);
                }
            }
    
            int control = 6;
            // Este for abaixo � para imprimir os meses da coluna � direita.
            for (; dias_dir <= 35; dias_dir++)
            {
                if (dias_dir > (28 + control) || dias_dir <= control)
                {
                    printf("  --");
                }
                else
                {
                    printf("  %.2d", abril_dias[dias_dir - (1 + control)]);
                }
    
                // A cada 7 dias, imprime uma barra, uma quebra de linha e outra barra e pula para o proximo for, atrav�s do comando break
                if (dias_dir % 7 == 0)
                //if(dias_esq == 6)
                {   
    
                    // Ele s� faz isso at� a pen�ltima linha, pois a �ltima n�o precisa de uma quebra de linha
                    if (i < 4)
                    {
                        printf(" |\n|");
                    }
    
                    dias_dir++; 
    
                    break; // Realiza o break, voltando para o primeiro For. E assim sucessivamente...
              
               }
            
                
            }
            
            
            
        }
        
         for (int m = 0; m < 5; m++)
        {   
            
            int control_dir = 3;
            // Este for abaixo � para imprimir os meses da coluna � esquerda.
            // Ele roda 35 vezes, pois em um calend�rio existem 35 espa�os (7 dias x 5 linhas = 35 espa�os)
            for (; dias_esq < 35; dias_esq++)
            {
                
                // A cada 7 dias, imprime duas barras || e pula para o proximo for, atrav�s do comando break
                if(dias_esq == 6 || dias_esq == 13 || dias_esq == 20 || dias_esq == 27)
                {
                    printf("  %.2d", marco_dias[dias_esq - control_dir]);
                    printf(" ||");
                    dias_esq++;
                    break; // O pr�ximo for vai ser executado, imprimindo agora os dias da coluna � direita
                }
                else if (dias_esq >= 34)
                {
                    printf("  -- ||");
                }
                else if (dias_esq > (30 + control_dir) || dias_esq <= (control_dir - 1))
                {
                    printf("  --");
                }
                else
                {
                    printf("  %.2d", marco_dias[dias_esq - control_dir]);
                }
            }
    
            int control = 6;
            // Este for abaixo � para imprimir os meses da coluna � direita.
            for (; dias_dir <= 35; dias_dir++)
            {
                if (dias_dir > (28 + control) || dias_dir <= control)
                {
                    printf("  --");
                }
                else
                {
                    printf("  %.2d", maio_dias[dias_dir - (1 + control)]);
                }
    
                // A cada 7 dias, imprime uma barra, uma quebra de linha e outra barra e pula para o proximo for, atrav�s do comando break
                if (dias_dir % 7 == 0)
                //if(dias_esq == 6)
                {   
    
                    // Ele s� faz isso at� a pen�ltima linha, pois a �ltima n�o precisa de uma quebra de linha
                    if (i < 4)
                    {
                        printf(" |\n|");
                    }
    
                    dias_dir++; 
    
                    break; // Realiza o break, voltando para o primeiro For. E assim sucessivamente...
              
               }
            
                
            }
            
            
            
        }
        
        
    
        printf(" |\n|  --  --  --  --  --  --  -- ||  --  --  --  --  --  --  -- |\n"); 
        return 0;
    
    }
    
    

     

    • Amei 1
  2. Alguem pode me ajudar? preciso fazer um calendario em c mas estou com certa dificuldade em montar o calendario ele tem que ser 2x6

    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    
    int i; //mes
    int j; //dia
    int data;
    int cont = 0; //quebra linha
    int ano, mes, dia, bis,bar, linhaCalendario;
    int g, c, x, z, e, d, n;
    int inicioMes;
    int mesDias[] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
    char *meses[12]=
    {
        "Janeiro",
        "Fevereiro",
        "Marco",
        "Abril",
        "Maio",
        "Junho",
        "Julho",
        "Agosto",
        "Setembro",
        "Outubro",
        "Novembro",
        "Dezembro"
    };
    
    int main() {
        printf("Digite o ano: ");
        scanf("%d", &ano);
    
    
        //P A S C O A
    
        g = (ano % 19) + 1; //resto inteiro - AUREO
        c = (ano / 100) + 1; //SECULO
        x = ((3 * c) / 4) - 12; //correção 1
        z = (((8 * c) + 5) / 25) - 5; //correção 2
        e = ((11 * g) + 20 + z - x) % 30; //resto inteiro
    
    
        //EPACTA
        if((e == 25 && g > 11) || e ==  24){
            e++;
        }
     
    
        //LUA CHEIA
        n = 44 - e; 
        if(n < 21){
             n += 30;
        }
    
        //DOMINGO DE PASCOA faça N = 44 - E. Se N < 21,
        d = ((5 * ano) / 4) - (x + 10);
          data = (n + 7) - ((d+n) % 7);
    
     if(data > 31){
            data = data - 31;
            printf("Pascoa: %d de abril ", data);
            mes = 4;
    
        }else{
            printf("Pascoa: %d de marco ", data);
            mes = 3;
        }
    
    
    
    int y=ano;
    
    
    
    if(y%100 == 0)
    {
     y = y/100;
    }
    
    printf("%d\n",y);
    if(y%4 == 0)
    {
     printf("bissexto\n");
    }else{
     printf("nao e bissexto\n") ;
    }
     //Calculo do primeiro de janeiro
    	
     int diaSemana = 7;
         if(ano!= bis)
         {
             bar=31+28+dia;
        }else{
            bar=31+29+31+dia; 
        }
        for(bar=0;bar>0;bar--){    //qual dia termina o mes?: inicioMes(0-DOM, 1-SEG, 3-TER, 4-QUA, 5-QUI, 6-SEX)
            if(diaSemana==1){
                diaSemana=7;
            }else{
                diaSemana--;
            }
        }
        
         
    return 0;
    
    
    }
     

     

    • Curtir 1
    • Amei 1

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!