Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Coloboración Paypal con ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 09-12-2009
Avatar de yapt
yapt yapt is offline
Miembro
 
Registrado: sep 2006
Ubicación: España
Posts: 258
Poder: 20
yapt Va por buen camino
Pues ya me ilustraras cuando tengas un rato, porque no te entiendo. :-) jejeje....

Como podemos hacer que esas funciones hagan lo que tienen que hacedr de forma correcta (desde un punto de vista "humano") ?

La verdad es que utilizo poco esas funciones. Siempre trabajo en minutos o segundos (para mí, habitualmente, las fechas no son necesarias, por eso guardo solo segundos o minutos -integer- y opero con ellos de forma directa y con mis propias funciones)

Salu2.
Responder Con Cita
  #2  
Antiguo 09-12-2009
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 31
Lepe Va por buen camino
ah, perdon.

Lo normal es usar la archifamosa función Now() para tenerlo todo, la fecha, hora y milisegundos, después si quieres cambiar un dato de la fecha, tiras de la unidad dateutils:
- recodeDate
- recodeTime
- encodeDateTime
- decodeDatetime

- dayOf
- monthOf
- yearOf

- incMonth
- incDay
- incHour
- incMinutes
- ...
(revisa la ayuda de DateUtils)

como ves tienes un monton de rutinas para trabajar cómodamente sin tener que codificar con string las fechas y horas.

Al grano en tu ejemplo:
Código Delphi [-]
var vieja, nueva :Tdatetime;
     min : int64; // creo este es el tipo que devuelve minutesbetween
begin
  vieja := now(); 
  vieja := RecodeTime(vieja, 12, 0, 0, 0); // Hora al mediodía; minutos, segundos y milisegundos a cero (porque me da la gana  )
  nueva := RecodeTime(vieja, 13, 0, 0, 0 );
  min := MinutesBetween(nueva, vieja);

Si no has tenido problemas hasta ahora, es porque no has calculado diferencias de horas estando de por medio el cambio de fecha, por ejemplo, desde las 23:00 hasta la 1:00 no van 2 horas de diferencia, Delphi te dirá que van 22 horas. Al no considerar la fecha, Delphi usa la misma fecha (30/12/1899 1:00 hasta el 30/12/1899 23:00) calculando la diferencia al revés, desde la 1 de la madrugada hasta las 23:00 horas de ese mismo día

Al principio crees que una rutina como incDay es una tontería, es sólo sumar un día a la fecha anterior pero,¿y si el año es bisiesto? ¿o no lo es?, obviamente todos esos "peros" están ya controlados en esas rutinas.

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #3  
Antiguo 09-12-2009
Avatar de yapt
yapt yapt is offline
Miembro
 
Registrado: sep 2006
Ubicación: España
Posts: 258
Poder: 20
yapt Va por buen camino
Ok... acabaramos.

Entonces podemos resumir el asunto en que el problema está en la función
'StrtoTime', pero no en 'MinutesBetween' (que es, también, de dateutils).

Aclarado queda.

Salu2.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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
Funcion ABS brandolin SQL 5 24-01-2009 14:53:38
Función o q? Veanny Internet 2 21-02-2008 21:43:40
Funcion fafita Varios 7 25-01-2008 16:03:40
Problemas con MinutesBetween romansiux Varios 4 21-05-2005 14:27:56
funcion agora18 SQL 1 06-10-2003 07:18:30


La franja horaria es GMT +2. Ahora son las 16:00:21.


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