Necesito una rutina simple de caducidad de programa

Iniciado por luis456, 26 Diciembre 2012, 07:50 AM

0 Miembros y 1 Visitante están viendo este tema.

luis456

Hola de nuevo

Tengo un código y necesito que se caduque a cada cierto tiempo sea por fecha o por uso algo simple ya que es para regalarlo y que lo crakeen no es problema,pero por fastidiar jejej.

pensé en esto ( pero es fox :) )

if date == 12/12/2012
exit
endif

claro esto es en fox pro y no se como hacerlo en c++ ya que en  fox no hay que declarar el time

gracias

Luis


Que tu sabiduria no sea motivo de Humillacion para los demas

ecfisa

#1
Hola.

Código (cpp) [Seleccionar]

#include <iostream>
#include <ctime>
using namespace std;

int expired(struct tm);  
...

int main() {
 struct tm f;
 int d,m,y;

 /*
 Aqui deberia ir el codigo para obtener la fecha de caducidad.  
 El dia, mes y año se almacenan en las variables: d, m, y.
 */

 f.tm_year = y;
 f.tm_mon  = m;
 f.tm_mday = d;
 if (expired(f) > 0) {
   cout << "El periodo de uso ha caducado";
   return 1;
 }
 // ...
 return 0;
}

/* expired: devuelve > 0 si ini < hoy, = 0 si ini = hoy, < 0 si ini > hoy */
int expired(struct tm ini) {
  time_t t = time(NULL);
 struct tm *hoy = localtime(&t);
 return (hoy->tm_year+1900 + hoy->tm_mon + hoy->tm_mday) -
        (ini.tm_year + ini.tm_mon+ ini.tm_mday);
}


Saludos.

rir3760

Otra opción es, en la caso de C, utilizar la función difftime para obtener la diferencia entre dos fechas. Mas o menos así:
#include <time.h>

/* ... */

/* Retorna 1 si no se ha sobrepasado la fecha, 0 en caso contrario */
int expired(struct tm *ini)
{
   return difftime(time(NULL), mktime(ini)) >= 0.0;
}


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

luis456

No me sale jejej y gracias por responder  funciona bien compila y todo pero si pongo una fceha pasada deberia de sacarme el mesagebox y solo se se cierra

luis

#include <iostream>
#include <ctime>
using namespace std;

int expired(struct tm); 

int main() {
  struct tm f;
  int d,m,y;
 
  // esta seria la fecha de caducidad ????????????
  d= 01;
  m= 12;
  y= 2013;
 
  // segun entiendo tendria que poner las Variables con la fecha que elija ----------No me sale
  //  +Aqui deberia ir el codigo para obtener la fecha de caducidad. 
// El dia, mes y año se almacenan en las variables: d, m, y.
  //*/

  f.tm_year = y;
  f.tm_mon  = m;
  f.tm_mday = d;
  if (expired(f) > 0) {
    cout << "El periodo de uso ha caducado";
    return 1;
  }
  // ...
 
    return 0;
}

/* expired: devuelve > 0 si ini < hoy, = 0 si ini = hoy, < 0 si ini > hoy */
int expired(struct tm ini) {
  time_t t = time(NULL);
  struct tm *hoy = localtime(&t);
  return (hoy->tm_year+1900 + hoy->tm_mon + hoy->tm_mday) -
         (ini.tm_year + ini.tm_mon+ ini.tm_mday);
         
}
Que tu sabiduria no sea motivo de Humillacion para los demas