Ayuda con calendario

Iniciado por s3v3r, 16 Diciembre 2015, 11:37 AM

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

s3v3r

Hola buenas, el caso es que soy nuevo con c+/- :D y tengo que realizar un programa que me ponga el calendario dandole un año y un mes...
Mi problema es que no se si en c+- esta permitido crear un array o algo donde almacene los meses y posteriormente cuando me den el numero del mes (ej 2 --> me ponga febrero)
Agradeceria mucho que me explicaran como hacerlo  ;-)

RevolucionVegana

HAS DICHO ALGO NENAAAAAA?!

Orubatosu

Un Array corriente y moliente de strings

El número del mes será el índice de la matriz mas uno

Por ejemplo:

Meses[0] = "Enero"
Meses[1] = "Marzo"

etc... rizando el rizo se puede hacer un struct que incluye el string del nombre, un entero que indique el número de días de cada mes...

Y obviamente necesitas una rutina que te diga los años bisiestos
"When People called me freak, i close my eyes and laughed, because they are blinded to happiness"
Hideto Matsumoto 1964-1998

s3v3r

#3
el caso es que no entiendo mucho el c+-, estoy lo haria con un array sencillo en java...
El programa entero lo tengo exo mediante "congruencia de zeller" y calculando tambien los dias del mes pero luego a la hora de transformar el numero en un mes me surge el problema.
Tenia pensado algo con enum, al menos lo llama asi por el libro en que me fijo.

typedef enum TipoMes{
 Enero, Febrero,Marzo,Abril.....};
algo así pero a la hora de acceder me surge el problema, no puedo poner mes[1] = Marzo por ejemplo... como se haría eso.
Es que en c+- no hay nada como en java que sea char h[10] = ..... y despues puedes modificar las posiciones o saber que hay dentro de cada posicion?

Orubatosu

Es una opción, pero en C++ los arrays funcionan de una forma practicamente idéntica al Java. La numeración es exactamente la misma. Empiezas por
  • y terminas por el último.

"When People called me freak, i close my eyes and laughed, because they are blinded to happiness"
Hideto Matsumoto 1964-1998

s3v3r

pues entonces como lo hago porque me canta error cada vez que quiero acceder a una posicion... el caso es que si teneis algun sitio donde me enseñe o algo pues mejor que mejor

RevolucionVegana

Si pones el código (un gran trozo) te podríamos ayudar y detectar donde esta el error
Saludos
HAS DICHO ALGO NENAAAAAA?!

0xFer

Cita de: s3v3r en 17 Diciembre 2015, 12:18 PM
pues entonces como lo hago porque me canta error cada vez que quiero acceder a una posicion... el caso es que si teneis algun sitio donde me enseñe o algo pues mejor que mejor

Ninguno en particular, cualquier información que encuentres googleando te puede servir.
Código (java) [Seleccionar]
int getRandomNumber(){
    return 4; //chosen by fair dice roll
              //guaranteed to be random
}

s3v3r

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

void DibujarCalendario(int 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");
  }
}

Hacerlo de esta manera me parece muy vulgar y poco eficiente :( si pongo
printf("%s",TipoMes(mes)); me da error y se cuelga el programa, el error no me aparece, directamente se cuelga.
Me interesa sustituir todos los if por lo de printf asi no tengo que estar comparando