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 16-06-2011
Avatar de Darkseratul
Darkseratul Darkseratul is offline
Miembro
NULL
 
Registrado: feb 2011
Posts: 58
Poder: 14
Darkseratul Va por buen camino
Exclamation !!!Duda sobre cálculos de fechas !!!

hola compañeros del club delphi

tengo un problema a la hora de calcular fechas

tengo un campo con una fecha " 12/05/2011 " Día, Mes, año

como le hago para que el programa me cuente los días a la fecha actual

12/05/2011 que de esta fecha empiece a contar hasta 102 días hasta la fecha actual

campo fecha "12/05/2011" y en una label me diga van 24 días y quedan 81

en resumen que compare la fecha actual con el del campo y que me de resultado los dias que van de los 102

buscando en el foro me encontré este código

pero no se como aplicarlo

Código Delphi [-]
procedure TFPrincipal.DBGListarAgendaDrawColumnCell(Sender: TObject;
  const Rect: TRect; DataCol: Integer; Column: TColumn;
  State: TGridDrawState);
begin
   //  Confirmo en la bd si se cumple una de las alarmas
   if Column.Field.Dataset.FieldbyName('alarma1').AsInteger = 1 then
      begin
         if (gdFocused in State) then
            DBGListarAgenda.canvas.brush.color := clBlack
         else
         begin
         //Pinto el color que quiero pa la alarma
         DBGListarAgenda.canvas.brush.color := clColorAlarma1;
         end;
      end;

este código es para un dbGrid

espero que me puedan ayudar gracias
Responder Con Cita
  #2  
Antiguo 16-06-2011
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola Darkseratul.

Cita:
tengo un campo con una fecha " 12/05/2011 " Día, Mes, año como le hago para que el programa me cuente los días a la fecha actual
Hasta aqui voy bien:
Código Delphi [-]
uses DateUtils;
...
var
  NroDias: Integer;
begin
  NroDias:= DaysBetween(Now,StrToDate('12/05/2011'));
  ...
end;

Cita:
12/05/2011 que de esta fecha empiece a contar hasta 102 días hasta la fecha actual campo fecha "12/05/2011" y en una label me diga van 24 días y quedan 81
en resumen que compare la fecha actual con el del campo y que me de resultado los dias que van de los 102
Esto último no lo entiendo en absoluto.


Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #3  
Antiguo 16-06-2011
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.052
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por ecfisa Ver Mensaje
Esto último no lo entiendo en absoluto.
Por eso no contesta nadie, porque no hay quien entienda la pregunta
Responder Con Cita
  #4  
Antiguo 16-06-2011
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, creo que lo que quiere es sumarle 102 dias a la fecha que tiene almacenada y en base a la fecha actual ver cuantos días han pasado y cuantos le faltan para llegar a esa fecha, creo que es eso, pero tampoco entiendo bien su pregunta.

Código Delphi [-]
var
 Fecha, FechaS: TDateTime;
 DiasP, DiasF : Integer;
begin
 Fecha := DataSet.FieldByName('fecha').AsDateTime; 
 FechaS :=IncDay(Fecha, 102);
 
 DiasP := DaysBetween(Now, Fecha);
 DiasF := DaysBetween(FechaS, Now); 
 
 Label.Caption := 'Han pasado :'+IntToStr(DiasP)+' días faltan '+IntToStr(DiasF)+' días'+;

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
  #5  
Antiguo 16-06-2011
Avatar de Darkseratul
Darkseratul Darkseratul is offline
Miembro
NULL
 
Registrado: feb 2011
Posts: 58
Poder: 14
Darkseratul Va por buen camino
Unhappy Gracias por la pronta respuesta

Si se que no me se explicar pero no sabia como hacerlo disculpen

Pues miren

tengo una fecha de inicio que el usuario captura, para el sistema es la fecha de inicio

para hacer lo que necesito he pensado en tres cosas la fecha de inicio, la fecha actual (es la fecha el día) y un dato que son 102

me explico con una imagen a ver si me doy a entender



es algo asi espero que me den una idea de como hacerlo
Responder Con Cita
  #6  
Antiguo 16-06-2011
Avatar de oscarac
[oscarac] oscarac is offline
Miembro Premium
 
Registrado: sep 2006
Ubicación: Lima - Perú
Posts: 2.010
Poder: 20
oscarac Va por buen camino
quiza esto te pueda ayudar
__________________
Dulce Regalo que Satanas manda para mi.....
Responder Con Cita
  #7  
Antiguo 17-06-2011
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola Darkseratul.

Sigo sin entenderte muy bién, pero a ver si lo que andas buscando es algo así...
Código Delphi [-]
begin
  ShowMessage(Format('%s %d %s %d %s',
              ['Transcurrieron: ',
               DaysBetween(Now, DateTimePicker1.Date),
               ' días. Restan: ',
               102-DaysBetween(Now, DateTimePicker1.Date),
               ' días']));
end;

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #8  
Antiguo 17-06-2011
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 25
Delphius Va camino a la fama
A ver... no se de donde sale esos 102.
La hago fácil: dadas dos fechas, la cantidad de días entre ellos como ya te indicaron se puede obtener con DaysBetween().
Por tanto, la cantidad de días que faltan de la fecha menor a la mayor es justamente esa cantidad.
La pregunta aquí es ¿De donde (disculpen mi vocabulario) carajos sale los 102?

De tu imagen yo entiendo esto:
1) El usuario selecciona una fecha, llamemosla Fecha1
2) Se obtiene la fecha actual del sistema, llamemosla Fecha2
3) "Cuantos días quedan" o "cuantos días para terminar" indica resta o diferencia. Entonces simple: DaysBetween(). El resultado puede ser 101, 102, 365... 0.

Si a lo mejor en vez de aventar las oraciones sueltas, una a una, te tomaras la molestia de pensar tus palabras primero y reordenaras tus ideas podrías elaborar un buen párrafo, con sus debidos signos de puntuación (o al menos cuidando lo mejor posible) podríamos hacer una mejor lectura.

Es más, te propongo algo lijeramente diferente: en vez de aventarnos TU problema explica textualmente lo que debe hacer el usuario, el porqué, su para que, es decir: una descripción del objetivo. Olvidémosnos de fecha1, fecha2, daysbetween, etc. Hablemos: porqué esos 102, ¿que significan? ¿Para que se necesita hacer? ¿Cuál es el propósito, el fin último? Explica el contexto, y la idea y el problema (tu problema en realidad) saldrá a la vista.

Saludos,
__________________
Delphius
[Guia de estilo][Buscar]

Última edición por Delphius fecha: 17-06-2011 a las 03:53:17.
Responder Con Cita
  #9  
Antiguo 17-06-2011
[maeyanes] maeyanes is offline
Capo de los Capos
 
Registrado: may 2003
Ubicación: Campeche, México
Posts: 2.732
Poder: 24
maeyanes Va por buen camino
Hola...

Según entiendo, la solución de Caro es lo que el compañero busca: http://www.clubdelphi.com/foros/show...55&postcount=4


Saludos...
__________________
Lee la Guía de Estilo antes que cualquier cosa. - Twitter
Responder Con Cita
  #10  
Antiguo 17-06-2011
Avatar de Darkseratul
Darkseratul Darkseratul is offline
Miembro
NULL
 
Registrado: feb 2011
Posts: 58
Poder: 14
Darkseratul Va por buen camino
Smile Gracias amigos por su ayuda

gracias por su ayuda amigos

Se que de vi estructurar bien el problema

Por te de la solución la ha dado Caro a un que por lo mismo que no me se explicar tampoco lo entiendo bien

El problema es este

fecha1 es la que captura el usuario
fecha2 fecha actual del sistema

limite 102 días (el proceso solo dura 102 días)

En la aplicación tengo que hacer un proceso general que cuente los días
el cual empieza con la fecha1 se compara con la fecha2 y el resultado es cuanto días lleva de los 102 días que se tienen de limite

espero a verme explicado, por que es lo mejor que puedo

muchas gracias Caro,Delphius,oscarac y en especial ecfisa que siempre me ayuda a un cuando no me explico bien te debo una parrillada
Responder Con Cita
  #11  
Antiguo 12-07-2011
Avatar de Darkseratul
Darkseratul Darkseratul is offline
Miembro
NULL
 
Registrado: feb 2011
Posts: 58
Poder: 14
Darkseratul Va por buen camino
Talking Muchas gracias a Caro que me ayudo muchísimo

la solución de caro es la como yo quería es genial y muchas gracias a todos los demás que siempre me ayudan a un que no me se explicar

Código Delphi [-]
var
 Fecha, FechaS: TDateTime;
 DiasP, DiasF : Integer;
begin
 Fecha := DataSet.FieldByName('fecha').AsDateTime; 
 FechaS :=IncDay(Fecha, 102);
 
 DiasP := DaysBetween(Now, Fecha);
 DiasF := DaysBetween(FechaS, Now); 
 
 Label.Caption := 'Han pasado :'+IntToStr(DiasP)+' días faltan '+IntToStr(DiasF)+' días'+;

Muchas gracias a todos
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
Otra vez calculos con fechas sierraja OOP 4 08-10-2008 21:40:48
Una Duda sobre campos de fechas ale_metall Varios 8 21-10-2007 19:38:45
calculos con fechas Jheysson13 Varios 9 08-10-2006 06:19:23
Duda Con Fechas. kman Varios 4 29-05-2006 02:55:32


La franja horaria es GMT +2. Ahora son las 14:45:52.


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