Ir ao conteúdo
  • Cadastre-se

marvelous12

Membro Júnior
  • Posts

    4
  • Cadastrado em

  • Última visita

Reputação

5
  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; }
  2. @arfneto faz parte do trab achar o primeiro dia a partir da data da pascoa adicionado 5 minutos depois @herbertbahia não um programa que com base na nada ta pascoa ache o primeiro de janeiro (q dia cai) e com isso eu entre com o ano no programa e saia o calendario do ano todo
  3. @devair1010 @devair1010 nao expliquei direito a entrada tem q ser o ano e a saida o calendario exatamente assim com todos os meses
  4. 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; }

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...