[CÓDIGO] Calendario Mes

Iniciado por rollth, Enero 09, 2015, 03:48:24 PM

Tema anterior - Siguiente tema

0 Miembros y 1 Visitante están viendo este tema.

Enero 09, 2015, 03:48:24 PM Ultima modificación: Enero 09, 2015, 05:32:41 PM por Gabriela
Esto muestra el calendario de un mes que elijamos

Código: c
#include <stdio.h>

typedef enum TipoMes{
  Nada, Enero, Febrero, Marzo, Abril, Mayo, Junio, Julio, Agosto, Septiembre, Octubre, Noviembre, Diciembre
};

typedef int TipoVector[12];

void CalcularDia(int anno, int mess, int & num){

  TipoVector t;

  t[0] = 0;
  t[1] = 3;
  t[2] = 2;
  t[3] = 5;
  t[4] = 0;
  t[5] = 3;
  t[6] = 5;
  t[7] = 1;
  t[8] = 4;
  t[9] = 6;
  t[10] = 2;
  t[11] = 4;

  if (mess < 3){
    anno = anno - 1;
  }
  num = (anno + (anno / 4) - (anno / 100) + (anno / 400) + t[mess-1] + 1) % 7;
}

void MaximoMes(int anno, TipoMes mes, int & max){
  if (mes == Febrero){
    if ((anno % 4 == 0) && ((anno % 100 != 0) || (anno % 400 == 0))){
      max = 29;
    }
    else{
      max = 28;
    }
  }
  else if(mes % 2 == 0){
    if (mes < 8){
      max = 30;
    }
    else{
      max = 31;
    }
  }
  else{
    if (mes < 8){
      max = 31;
    }
    else{
      max = 30;
    }

  }
}

void StringMes(TipoMes mes){
  if (mes == Enero){
    printf("ENERO                ");
  }
  if (mes == Febrero){
    printf("FEBRERO              ");
  }
  if (mes == Marzo){
    printf("MARZO                ");
  }
  if (mes == Abril){
    printf("ABRIL                ");
  }
  if (mes == Mayo){
    printf("MAYO                 ");
  }
  if (mes == Junio){
    printf("JUNIO                ");
  }
  if (mes == Julio){
    printf("JULIO                ");
  }
  if (mes == Agosto){
    printf("AGOSTO               ");
  }
  if (mes == Septiembre){
    printf("SEPTIEMBRE           ");
  }
  if (mes == Octubre){
    printf("OCTUBRE              ");
  }
  if (mes == Noviembre){
    printf("NOVIEMBRE            ");
  }
  if (mes == Diciembre){
    printf("DICIEMBRE            ");
  }
}

int main(){

  TipoMes mes;
  int num, anno, max, mess;

  printf("Mes? ");
  scanf("%d",&mess);
  printf ("Anno?");
  scanf("%d",&anno);

  if (anno <= 1600 || anno > 3000){
    printf("Anno invalido");
  } else {

  mes = TipoMes(mess);

  CalcularDia(anno, mess, num);
  MaximoMes(anno, mes, max);

  StringMes(mes);

  if (num < 1){
    num = 7;
  }

  printf("  %d", anno);
  printf("\n===========================");
  printf("\nLU  MA  MI  JU  VI | SA  DO\n");
  printf("===========================\n");

  for (int i = 1; i < num; i++){
      if (i == 5){
        printf(" . | ");
      }
      else{
        printf(" .  ");
      }
  }
  for (int i = 1; i <= max; i++){
    if (i <= 9){
      printf(" ");
    }
    if(num==5){
      printf("%d | ",i);
    }else{
      printf("%d  ",i);
    }
    if (num == 7){
      printf("\n");
      num = 0;
    }
    num++;
  }
  if ((num != 1) && (num != 8)){
    while (num <= 7){
      if (num == 5){
        printf(" . | ");
      }
      else{
        printf(" .  ");
      }
      num++;
  }
  }
}
}
RollthBuen hacker mejor No tienes permitido ver los links. Registrarse o Entrar a mi cuenta/No tienes permitido ver los links. Registrarse o Entrar a mi cuenta