[C con Clase] class fecha

Salvador Pozo salvador en conclase.net
Jue Feb 24 23:26:32 CET 2011


w> entiendo lo del time no lo habia tomado en cuenta ya que no se mucho de esta libreria , bueno en el caso de que yo trabajara con el time.h hasta donde yo se esta libreria solo funciona para fechas y horas "actuales" y mi clase se supone que tiene una fecha determinada por el usuario , como lo relacionaria con time me podrian explicar?

Hola:

No existe tal limitación, puedes usar cualquier fecha, dentro de determinados límites, claro.

La idea es convertir tiempos entre dos formatos:
- La estructura tm, con campos para año, mes, dia, hora, minutos y segundos.
- El tipo time_t, que expresa el tiempo en segundos, a partir de una fecha determinada (creo recordar que el 1/1/1970).

A los valores de tipo time_t le puedes sumar o restar cualquier tiempo, expresado en segundos, y hay funciones para hacer las conversiones entre los dos formatos. Por ejemplo:

----8<------
#include <iostream>
#include <ctime>

using namespace std;

int main(int argc, char *argv[]) {
	time_t tiempo;
	struct tm tiempo2;
	
	tiempo2.tm_sec = 0;
	tiempo2.tm_min = 0;
	tiempo2.tm_hour = 0;
	tiempo2.tm_mday = 23;
	tiempo2.tm_mon = 1; // Febrero
	tiempo2.tm_year = 81; //1981
	
	tiempo = mktime(&tiempo2);

	cout << tiempo2.tm_mday << "/" << tiempo2.tm_mon+1 << "/" << tiempo2.tm_year+1900 << endl;
	
	// Añadimos 234 dias, es decir 234*24*60*60 segundos
	
	tiempo += 234*24*60*60;
	
	cout << "+ 234 dias" << endl;
	tiempo2 = *gmtime(&tiempo);
	
	cout << tiempo2.tm_mday << "/" << tiempo2.tm_mon+1 << "/" << tiempo2.tm_year+1900 << endl;
	
	return 0;
}
----8<------
Hasta pronto.

-- 
Salvador Pozo (Administrador)
mailto:salvador en conclase.net


Más información sobre la lista de distribución Cconclase