Ir ao conteúdo

Antonio M.

Membro Júnior
  • Posts

    1
  • Cadastrado em

  • Última visita

Reputação

0
  1. Olá! Estou criando um programa em C, é uma atividade do meu curso, e nesse programa, o usuário irá informar um mês e um ano, e a partir daí, eu preciso imprimir esse determinado mês desse determinado ano, como a folha de um mês, com os dias e tal. O ano base que eu preciso usar é 1970, o qual o dia 01/01/1970 é uma quinta-feira. Nesse programa, eu já fiz a a parte da contagem de anos bissextos e tal. Porém, tem uma parte que eu estou travado, é onde eu preciso calcular quando foi o dia 01/01 do ano que o usuário irá digitar, para fazer a contagem e determinar como eu irei imprimir o mes q ele digitar, pois tem a questão do espaçamento e de q em qual dia da semana será o dia 1 desse mes. Eu não posso usar switch, nem outras funções diferentes das q estão sendo usadas ali. Eu separei o código por etapas, para ir fazendo aos poucos, pois eu sou iniciante. Por enquanto, o meu código está assim (algumas partes estão apenas com números de exemplo, apenas para testes): #include <stdio.h> #include <math.h> int main(){ int ano_inicial = 1970; // ano inicial/ano base int mes_entrada = 0, ano_entrada = 0; // dados fornecidos pelo usuário int quant_anoBissexto = 0; // contador de ano bissexto int quant_anoNaoBissexto = 0; // contador de ano não bissexto int ehBissexto = 0; // identificar se o ano digitado eh bissexto int dias = 0; // quantidade de dias no mes // receber as informações do usuário (mes e ano) scanf("%d %d",&mes_entrada, &ano_entrada); // saber a quantidade de anos bissextos e não bissextos entre o ano digitado e o ano de 1970 for(int i = ano_inicial; i <= ano_entrada; i++){ if((i%400 == 0)||(i%4 == 0)&&(i%100 !=0)){ quant_anoBissexto++; }else{ quant_anoNaoBissexto++; } } // saber se o ano digitado eh bissexto if((ano_entrada%400 == 0)||(ano_entrada%4 == 0)&&(ano_entrada%100 !=0)){ ehBissexto = 1; }else{ ehBissexto = 0; } // declarando a quantidade de dias de cada mes if(mes_entrada==12){ //dezembro dias = 31; }else if(mes_entrada==11){ // novembro dias = 30; }else if(mes_entrada==10){ // outubro dias = 31; }else if(mes_entrada==9){ // setembro dias = 30; }else if(mes_entrada==8){ // agosto dias = 31; }else if(mes_entrada==7){ // julho dias = 31; }else if(mes_entrada==6){ // junho dias = 30; }else if(mes_entrada==5){ // maio dias = 31; }else if(mes_entrada==4){ // abril dias = 30; }else if(mes_entrada==3){ // marco dias = 31; }else if((mes_entrada==2)&&(ehBissexto != 0)){ // fevereiro bissexto dias = 29; }else if((mes_entrada==2)&&(ehBissexto == 0)){ // fevereiro não bissexto dias = 28; }else if(mes_entrada==1) // janeiro dias = 31; // saber qual dia da semana cai o 1 dia do ano digitado // // para imprimir o mes e o ano digitado if(ano_entrada = 1){ printf("Janeiro %d",ano_entrada); }else if(ano_entrada = 2){ printf("Fevereiro %d",ano_entrada); }else if(ano_entrada = 3){ printf("Marco %d",ano_entrada); }else if(ano_entrada = 4){ printf("Abril %d",ano_entrada); }else if(ano_entrada = 5){ printf("Maio %d",ano_entrada); }else if(ano_entrada = 6){ printf("Junho %d",ano_entrada); }else if(ano_entrada = 7){ printf("Julho %d",ano_entrada); }else if(ano_entrada = 8){ printf("Agosto %d",ano_entrada); }else if(ano_entrada = 9){ printf("Setembro %d",ano_entrada); }else if(ano_entrada = 10){ printf("Outubro %d",ano_entrada); }else if(ano_entrada = 11){ printf("Novembro %d",ano_entrada); }else if(ano_entrada = 12) printf("Dezembro %d",ano_entrada); // para imprimir o calendario int d=1, inicio=4//exemplo; printf("do se te qu qu se sa\n"); // imprimir os espacos em branco for(int i=0; i<inicio; i++){ printf(" "); } // imprimir os dias for(int i=1; i<=5; i++){ // semanas for(int j=1; j<=7; j++){ // dias da semana if(d<=30){ //exemplo printf("%2d ",d); d++; } } printf("\n"); } return 0; } //fecha função main() Preciso imprimir algo assim:

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

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!