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 01-10-2008
Avatar de tcp_ip_es
tcp_ip_es tcp_ip_es is offline
No confirmado
 
Registrado: ago 2003
Ubicación: Madrid
Posts: 635
Poder: 0
tcp_ip_es Va por buen camino
Pues en principio resta los datetimes y multiplica los días enteros que te salgan es decir con tu ejemplo :

3/10/2008 - 1/10/2008 = 2 días *1desayuno, 1comida, 1cena = 2 desayunos 2 comidas y dos cenas

y luego revisa las horas de entrada y llegada.

hora salida/hora llegada
<8am >= 6pm sumar 1desayuno, 1comida, 1cena
<8am >=12am sumar 1desayuno, 1comida
<8am >=8am sumar 1desayuno

en la unit dateutils (>d5) encontrarás funciones de fechas que te serviran....
Responder Con Cita
  #2  
Antiguo 01-10-2008
lKinGl lKinGl is offline
Miembro
 
Registrado: ago 2007
Posts: 333
Poder: 17
lKinGl Va por buen camino
Wink

ok muchas gracias intentaré con dateutils a ver que logro
Responder Con Cita
  #3  
Antiguo 01-10-2008
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
el problema con restar las fechas y multiplicarlas, es que si Pepe sale en la tarde, esa operación igual le asignaría 1 desayuno, lo cuál sería incorrecto.

Yo no utilizaría TMAskEdit para las fechas, sería mejor utilizar TDateTimePIcker. Igual para las horas, nada más cambia la propiedad "Kind"
__________________

Responder Con Cita
  #4  
Antiguo 01-10-2008
lKinGl lKinGl is offline
Miembro
 
Registrado: ago 2007
Posts: 333
Poder: 17
lKinGl Va por buen camino
Exclamation

podrias explicarte mejor contraveneno?

pense que seria bueno con maskedit para filtrar las fechas pero creo que tambien se podria realizar con datatimepicker

pero mi dilema es:

si pepe sale hoy(01/10/2008) a las 3:10pm y llega mañana(02/10/2008) a las 9:20 pm

el 02/10/2008 cumplio el horario total asi que tiene 1 desayuno 1 almuerzo y 1 cena

pero el 01/10/2008 amerita solo 1 cena

creo que estoy en la lógica correcta pero no se como expresarlo con código

gracias adelantadas a sus sugerencias se acepta cualquier método que funcione
Responder Con Cita
  #5  
Antiguo 01-10-2008
lKinGl lKinGl is offline
Miembro
 
Registrado: ago 2007
Posts: 333
Poder: 17
lKinGl Va por buen camino
Exclamation

en relacion a lo que me indica contraveneno hice otro formulario el cual posee lo siguiente:

TDataTimePicker1 = Fecha de Salida
TDataTimePicker2 = Fecha de Retorno
TDataTimePicker3 = Hora de Salida
TDataTimePicker4 = Hora de Llegada
Edit1=Desayunos
Edit2=Almuerzos
Edit3=Cenas
Botón Calcular
Cotón Cerrar

creo que seria bueno calcular la cantidad de horas que hay entre la salida y la llegada dividir entre 24(horas del dia) y lo que sobre serán las últimas horas del dia trabajado incompletamente

pero como lo expreso con código

gracias adelantadas
Responder Con Cita
  #6  
Antiguo 01-10-2008
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 lKinGl Ver Mensaje
creo que seria bueno calcular la cantidad de horas que hay entre la salida y la llegada dividir entre 24(horas del dia) y lo que sobre serán las últimas horas del dia trabajado incompletamente

pero como lo expreso con código
Como te dijeron tienes varías funciones en la unidad DateUtils que te pueden ayudar, con DaysBetween (te da la cantidad de días entre dos fechas), HoursBetween (te da la cantidad de horas entre dos fechas).

Código Delphi [-]
 showmessage(inttostr(DaysBetween(FechaFin, FechaIni)));
 showmessage(inttostr(HoursBetween(FechaFin, FechaIni)));

donde FechaIni y FechaFin, serían tus fechas que ya estan unidas con sus respectivas horas.

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
  #7  
Antiguo 01-10-2008
Avatar de AzidRain
[AzidRain] AzidRain is offline
Miembro Premium
 
Registrado: sep 2005
Ubicación: Córdoba, Veracruz, México
Posts: 2.914
Poder: 21
AzidRain Va camino a la fama
Por que no cambias el algoritmo a algo no tan exacto pues es obvio que nadie come ni desayuna exactamente a las mismas horas y más cuando vas de viaje, digamos que sales a las 5:00 AM (obviamente no desayunas) y el viaje tarde 5 horas, llegas a tu destino y no te da tiempo de desayunar poruqe enseguida te pones a trabajar, dan las 3 y ya comes y luego como a las 8 cenas. Técnicamente te correspondía un desayuno (que no pudiste tomar).

Lo más simple y utilizado en casi todos lados es sacar un estimado de cuanto cuesta un día de las tres comidas y usar ese datos sin importar si se utilicen o no. Por ejemplo: supongamos $100 de comidas diarios para un viaje de 3 días, serían $300 y no nos importa si el tipo come a sus horas.

El control se lleva muy simple pues a su regreso el tipo tiene que comprobar $300 en facturas y/o efectivo. Obviamente las comidas que no haga no podrá presentar facturas (bueno teóricamente pq ya sabemos que en esto siempre hacen alguna transa): Esa verificación ya es parte del control interno de la empresa que es una función administrativa.

No es bueno codificar tan precisamente la cuestion de horas y fechas porque en un viaje de trabajo NUNCA se cumplen los horarios y corres el riesgo de que a alguien no le alcance o bien le sobre demasiado, por eso normalmente para viáticos siempre te consideran un % de imprevistos (más o menos un 20%) para esos casos. Nuevamente el control para que no haya desviaciones o malos manejos debe ser administrativo y no sistematizado. Otra cosa, las comidas no valen igual normalmente para un empleado de nivel medio que para un ejecutivo (ve tu a saber por qué, jejeje). Así como el hospedaje y demás, por otro lado hay que considerar que algunos trabajadores normalmente hacen comidas con clientes que obviamente a veces no están programadas sino que salen de improviso...ahi es donde te digo que es muy difícil y peligroso sistematizarlo todo.

Pero bueno, creo que sigo de metiche...solo era un comentario basado en mis experiencias.
__________________
AKA "El animalito" ||Cordobés a mucha honra||
Responder Con Cita
  #8  
Antiguo 01-10-2008
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
yo estoy de acuerdo con Azid... pero pues cuando el cliente te lo pide...
__________________

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
Alimentacion de Papel en Epson tmu 200 frankmch Impresión 11 23-11-2011 19:23:22
Calculo con decimales Carlos Arevalo Varios 3 30-07-2008 18:12:27
Integrales (Calculo) D-MO Varios 4 07-09-2006 19:52:53
calculo letra NIE Cabanyaler Varios 3 29-03-2005 12:19:42
Calculo De Totales PETERKANTROPUS Tablas planas 2 25-05-2004 03:06:14


La franja horaria es GMT +2. Ahora son las 10:50:58.


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