Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 03-03-2009
pablopessoa pablopessoa is offline
Miembro
 
Registrado: may 2008
Ubicación: Argentina
Posts: 162
Poder: 16
pablopessoa Va por buen camino
No encuentro la forma de restar fechas

Hola a todos!!
El problema en si no es restar la fecha... es que no encuentro una funcion que se comporte como necesito..
Es para un sistema de licencias para mi aplicacion, yo necesito restar la fecha de limite de uso que tiene la aplicacion con la fecha actual para saber si esta usandolo dentro de los dias "permitidos" por la licencia.
Yo actualmente uso la funcion DaysBetween(fechaLimite,fechaActual) , pero esta funcion siempre retorna un entero y eso no me sirve. Osea , con un ejemplo:

DaysBetween(30/01/2009,01/01/2009) = 30
DaysBetween(01/01/2009,30/01/2009) = 30

el en primer caso esta bien que devuelva 30, pero en el segundo necesito que me retorne -30, asi de ese modo se que se paso de la fecha de la licencia.
Espero haberme explicado bien, sino me dicen y trato de explicar mejor
Si alguien me puede recomendar una forma de hacerlo se los agradeceria mucho
Saludos!!!
Responder Con Cita
  #2  
Antiguo 03-03-2009
Avatar de Caro
*Caro* Caro is offline
Moderadora
 
Registrado: jul 2004
Ubicación: Cochabamba, Bolivia
Posts: 2.544
Poder: 22
Caro Va por buen camino
Hola pablopessoa, despues de obtener el numero de días con DaysBetween, comparas tus fechas, podría ser con la función CompareDate, si la fecha limite es menor a la fecha actual, al resultado del DayBetween lo conviertes en negativo multiplicando por -1.

Saluditos
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar.
Responder Con Cita
  #3  
Antiguo 03-03-2009
pablopessoa pablopessoa is offline
Miembro
 
Registrado: may 2008
Ubicación: Argentina
Posts: 162
Poder: 16
pablopessoa Va por buen camino
Hola caro , gracias por responder.
No es necesario tener el numero en negativo.. solo busco una forma de saber si la fecha actual es menor , igual o mayor a la del limite de la licencia.
Lo que pasa es que antes restaba las fechas, pero tenia errores eso, por que , por ejemplo, si estaba en el dia 1/12/2008 y hacia algo como (15/1/2009 - 01/12/2008) me daba el resultado en negativo, cuando no deberia si 15/01/2009 es mayor, me explico?
Pero me llamo la atencion lo de la funcion CompareDate, me podras explicar un poquito como se usa o que retorna?
Muchas Gracias!!
Responder Con Cita
  #4  
Antiguo 03-03-2009
Avatar de ContraVeneno
ContraVeneno ContraVeneno is offline
Miembro
 
Registrado: may 2005
Ubicación: Torreón, México
Posts: 4.738
Poder: 23
ContraVeneno Va por buen camino
Cita:
Empezado por pablopessoa Ver Mensaje
.. solo busco una forma de saber si la fecha actual es menor , igual o mayor a la del limite de la licencia.
¿y para que necesitas restar fechas si solo buscas eso?

Con un "If TuFecha > Now then showmessage('fecha mayor');" sería suficiente, ¿no?

DaysBetween solo considera los días completos, tal vez a eso se deba "los errores" que mencionas. Es decir, la función DaysBetween(1900-01-01 00:00:00, 1900-01-01 23:59:59) te va a regresar 0 porque le falta un segundo para completar el día. Si quieres con fracciones, deberías utilizar DaySpan.

Y finalmente, para conocer todos los detalles de daysbetween, dayspan y comparedate, lo mejor que puedes hacer es presionar F1 en delphi y revisar la ayuda sobre estas funciones, la cuál está muy completa y hasta ejemplos vas a encontrar.
__________________

Responder Con Cita
  #5  
Antiguo 03-03-2009
Avatar de Caro
*Caro* Caro is offline
Moderadora
 
Registrado: jul 2004
Ubicación: Cochabamba, Bolivia
Posts: 2.544
Poder: 22
Caro Va por buen camino
Cita:
Empezado por pablopessoa Ver Mensaje
Pero me llamo la atencion lo de la funcion CompareDate, me podras explicar un poquito como se usa o que retorna?
Muchas Gracias!!
Hola de nuevo pablo, como te dijo contraveneno, no necesitas restar la fechas, con una comparación fechalimite>fechaActual ya te valdría, sobre la función CompareDate recibe como parametro dos fechas y te devuelve -1 si la primera fecha es menor que la segunda, 0 si son iguales y 1 si la primera es mayor que la segunda.

Código Delphi [-]
  if CompareDate(FechaActual, FechaLimite)=1 then
   showmessage('La fecha actual es mayor a la fecha limite');

Saluditos
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar.
Responder Con Cita
  #6  
Antiguo 03-03-2009
pablopessoa pablopessoa is offline
Miembro
 
Registrado: may 2008
Ubicación: Argentina
Posts: 162
Poder: 16
pablopessoa Va por buen camino
Muchas Gracias por ayudarme!!
Tanto una solucion como la otra me vienen muy bien, ya me parecia que tenia que ser algo simple y que para variar yo la estaba complicando demasiado...
Gracias nuevamente y saludos!
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Restar dos fechas Alejandrina OOP 5 23-09-2008 20:54:13
restar dos fechas luxus OOP 2 06-08-2008 22:07:34
Restar Fechas jsanchez OOP 2 08-02-2006 19:29:55
Restar fechas majosf Conexión con bases de datos 11 16-11-2005 16:27:18
restar dos fechas seken Varios 4 15-08-2003 23:34:56


La franja horaria es GMT +2. Ahora son las 16:20:55.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi