Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Duda con algoritmo

Estas en el tema de Duda con algoritmo en el foro de C/C++ en Foros del Web. quiero saber si este algoritmo esta bien hecho @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código C: Ver original #include <cstdlib>#include <time.h>#include <iostream>  using namespace std; int main(int argc, char ...
  #1 (permalink)  
Antiguo 14/04/2010, 07:42
 
Fecha de Ingreso: abril-2010
Mensajes: 2
Antigüedad: 14 años
Puntos: 0
Duda con algoritmo

quiero saber si este algoritmo esta bien hecho

Código C:
Ver original
  1. #include <cstdlib>#include <time.h>#include <iostream>  using namespace std; int main(int argc, char *argv[]){      struct tm * fecha_hora; /* tm es un tipo estructurado definido en <time.h>                                    //que contiene cada campo de fecha y hora */  time_t segundos;      segundos = time(NULL); /* obtiene los segundos desde 1-1-1970 */    fecha_hora=localtime(&segundos); /* convierte los 'segundos' en la hora local */     system("color E"); cout<<"hora = [ "<<fecha_hora->tm_hour<< ":"<<fecha_hora->tm_min<<":"<<fecha_hora->tm_sec<<" ]"<<endl;    cout<<"fecha = [ "<<fecha_hora->tm_mday<<"/"<<fecha_hora->tm_mon<< "/"<<fecha_hora->tm_year<<" ]" ;     getchar();    return EXIT_SUCCESS;}
  #2 (permalink)  
Antiguo 15/04/2010, 05:39
 
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. }

Etiquetas: algoritmos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:20.