Ver Mensaje Individual
  #2 (permalink)  
Antiguo 15/04/2010, 05:39
jbourne
 
Fecha de Ingreso: abril-2010
Mensajes: 11
Antigüedad: 14 años
Puntos: 0
Respuesta: Duda con algoritmo

Más o menos, he encontrado dos errores a la hora de mostrar el mes y el año respectivamente.

Al mes hay que sumarle uno porque te devuelve los meses desde enero (¡ojo, comenzando por el cero!, es decir, de 0 a 11).

Al año hay que sumarle mil novecientos porque te devuelve el número de años transcurridos desde 1900, por tanto, para mostrar el año actual tienes que sumarle dicha cantidad.

El código corregido (por simplificar he suprimido todo aquello que no es esencial):

Código C++:
Ver original
  1. // Muestra en pantalla la hora y fecha del sistema
  2.  
  3. #include <iostream>
  4.  
  5. using namespace std;
  6.  
  7. int main(void)
  8. {
  9.     struct tm *fecha_hora;
  10.     time_t segundos;
  11.  
  12.     segundos = time(NULL); // Obtiene los segundos transcurridos desde el 1/01/1970, 0:00 horas
  13.     fecha_hora = localtime(&segundos);
  14.  
  15.     cout << "Hora = [ " << fecha_hora -> tm_hour << ":" << fecha_hora -> tm_min << ":" << fecha_hora -> tm_sec << " ]" << endl;
  16.     cout << "Fecha = [ " << fecha_hora -> tm_mday << "/" << (fecha_hora -> tm_mon) + 1 << "/" << (fecha_hora -> tm_year) + 1900 << " ]";
  17.  
  18.     return 0;
  19. }