[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 You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login/You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login