Programación General > C/C++
Re: getdate
(1/1)
Pakete:
Hola a todos,ahi va mi duda:
Estoy usando en c la funcion getdate(&fecha) para almacenar la fecha del sistema en la variable de tipo struct date fecha.Esta a su vez se compone de da_year,da_mon,da_day.
Pos weno, si yo kiero almacenar en otra variabale tipo struct date ,como por ejemplo fecha futura,la misma fecha pero incrementarlke 7 dias,ke debia hacer????
Lo ke busco es una solucion facil,ya se ke se le puede sumar 7 a fecha.da_day,pero habria ke controlar ke fiese menor ke 31,si fuese mayor ke 31 sumarle 1 al mes...
ke probablemente es lo ke tendre ke hacer preo weno...
ai alguien sabe algo de esto ke me ayude por favor.
En resumen,lo ke kerria hacer es algo asi como: fecha de hoy: getdate(&fecha)
fecha de hoy + 12 dias: y en creia ke debia ser getdate(&fechafutura)+12,pero asi no es
Gracias
dheak:
hola pakete.
Me parece que no te queda mas remedio que tener que sumarle 7 al dia y controlar q no pase de 31 y esas cosas.
Lo que si podrias hacer es una cosa. Hacerlo en C++. Son los mismos codigos que en C (todo lo que lleves hecho hasta ahora te debe compilar igual) pero ademas tienes el concepto de sobrecarga de operadores. Puedes sobrecargar el operador + o el operador += para asi no tener q andar siempre comprobando.
fecha& operator+(fecha& a, int& b)
{
if (da_day = a.da_day + b) > 31
{
if (da_mon<12) da_mon++;
else
{
da_mon = 1;
da_year++;
}
}
Todo esto metelo en una clase (struct con funciones) donde contenga las variables da_mon, da_year y da_day.
class fecha
{
int da_mon;
int da_year;
int da_day;
public:
... // aqui irian los constructores, destructores y demas operadores y funciones miembro.
fecha& operator+(fecha& a, int& b)
}
Esto te ira bien para poderlo utilizar tal que asi:
void main()
{
fecha x;
getdate(&x);
x = x + 7;
}
Pero no se si la funcion getdate() ya que no la conozco, te aceptara como parametro eso. Espero que te funcione.
Saludos.
Ismael:
O no entiendo bien la duda, pero creo que algo tan sencillo como el código fuente que adjunto resuelve el problema:)
Saludos
Ismael
Navegación
Ir a la versión completa