/
Inicio :: Foros

 F.A.Q.F.A.Q.                  Conéctese para revisar sus mensajesConéctese para revisar sus mensajes   

Ayuda, Metodo comparar mes

 
      Índice del Foro elrincondelc.com -> C/C++ en General
Ver tema anterior :: Ver siguiente tema  
AutorMensaje
Pablogamb



Registrado: 01 Abr 2014
Mensajes: 2

MensajePublicado: 01/04/2014 8:58 pm
Título: Ayuda, Metodo comparar mes

Buenas, quisiera saber si me podian ayudar o guiarme para hacer un metodo. Para guiarlos en lo que estoy trabajando, es que cuando yo creo un empleado con un contrato determinado, este mismo guarda su fecha de creacion. Lo que necesito es saber como hago un calculo entre la fecha de creacion y despues de 3 meses de esa fecha, esto para que el empleado tenga una plaza fija. No se si me hago a entender, cualquier cosa me preguntan. Muchas Gracias
Volver arriba
Dirección AIM
rir3760



Registrado: 01 Oct 2004
Mensajes: 7520
Ubicación: Mexico

MensajePublicado: 02/04/2014 6:46 am
Título:

Hola

Bienvenido a los foros. Por favor lee sus reglas.

Lo primero que debes indicar es el lenguaje de programación (C o C++) que utilizas. En el caso de C la forma mas fácil es utilizando las facilidades de su biblioteca estándar (el prototipo a incluir es <time.h>).

Los pasos son:
1) Obtienes la fecha actual con la función time.
2) En base al objeto de tipo time_t obtienes uno de tipo "struct tm" mediante la función localtime o gmtime.
3) Incrementas el valor del campo tm_mon.
4) Reajustas los valores mediante la función mktime.

Un ejemplo sencillo:
Código:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main(void)
{
   struct tm a = {0};
   struct tm b = {0};
   time_t now;
   
   now = time(NULL);
   a = b = *localtime(&now);
   
   /* Fecha con tres meses menos */
   a.tm_mon -= 3;
   mktime(&a);
   printf(" -3 ==> %4d/%02d/%02d\n",
      a.tm_year + 1900, a.tm_mon + 1, a.tm_mday);
   
   /* Fecha actual */
   printf("Now ==> %4d/%02d/%02d\n",
      b.tm_year + 1900, b.tm_mon + 1, b.tm_mday);
   
   /* Fecha con tres meses mas */
   b.tm_mon += 3;
   mktime(&b);
   printf(" +3 ==> %4d/%02d/%02d\n",
      b.tm_year + 1900, b.tm_mon + 1, b.tm_mday);
   
   return EXIT_SUCCESS;
}


Y su salida (al día de hoy) es:
Código:
 -3 ==> 2014/01/02
Now ==> 2014/04/02
 +3 ==> 2014/07/02


Un saludo
_________________
C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly.
--
Kernighan & Ritchie, The C programming language
Volver arriba
      Índice del Foro elrincondelc.com -> C/C++ en General
Página 1 de 1Todas las horas están en GMT - 8 Horas

 
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas

(c) ElRincondelC.com

Un proyecto de UrlanHeat.com