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 02-10-2008
lKinGl lKinGl is offline
Miembro
 
Registrado: ago 2007
Posts: 333
Poder: 17
lKinGl Va por buen camino
La unidad tributaria actual es 46 Bs.

Desayuno = 0.4 * Unidad Tributaria
Almuerzo = 1.7* Unidad Tributaria
Cena = 0.4* Unidad Tributaria

con una hoja y un lapiz he sacado los rangos (a ver si sirven de algo) creo que si

Desayuno= (<9:00am) y (<12:00m) y (<6:00pm)
Almuerzo= (>9:00am) y (<12:00m) y (<6:00pm)
Cena= (>9:00am) y (>12:00m) y (<6:00pm)

salu2 y gracias adelantadas
Responder Con Cita
  #2  
Antiguo 02-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
Pues se tendría que hacer al menos tres cálculos. Uno para determinar cuantas comidas le tocan al primer días, otro para determinar los días (este es el más fácil, daysbetween * 3 comidas por día) y otro para determinar cuantas comidas le corresponden al último día. Sumas y creo que con eso tienes.
__________________

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

creo que la mejor forma de desarrollar el algoritmo es la siguiente

Salida: 20/01/2008
Retorno: 25/01/2008

HoraSalida:13:00pm
Hora Retorno:11:00 am

Sacar la diferencia que hay entre salida y retorno

Retorno - Salida = 5 - 2 =3
Por lo tanto

Dias completos= 1Desayuno+1Almuerzo+1Cena


// le resto 2 por que es muy posible que el dia de salida y el dia de retorno no se trabaje completo

AlimentosSalida:24:00-13:00 = 11:00 Horas (Aqui asumir que faltaron 11 horas para culminar el dia)

Por lo tanto Alimentos Salida = 1 Cena

Alimentos Retorno=24:00-11:00 = 13:00

Por lo tanto Alimentos Retorno=1 Almuerzo+1Cena


nota: yo se que para hacer una resta de horas se usa el hoursbetween de la libreria DateUtils, pero no se es como sacar la resta con hora militar

porfa les agradesco su ayuda y gracias adelantadas
__________________
Las cosas o son, o no son...
Responder Con Cita
  #4  
Antiguo 03-10-2008
lKinGl lKinGl is offline
Miembro
 
Registrado: ago 2007
Posts: 333
Poder: 17
lKinGl Va por buen camino
Cool

Problema Resuelto:

Tengo lo siguiente:

MaskEdit1 = Formato(99/99/9999) es la fecha de Salida
MaskEdit2 = Formato(99/99/9999) esl la fecha de Retorno
MaskEdit3 = Formato (99:99) es la Hora de Salida
MaskEdit4 = Formato (99:99) es la hora de Retorno
Combobox1 = am ó pm del dia de salida
Combobox2 = am ó pm del dia de retorno
Edit1 = son los dias completos (que ameritan todas las comidas del dia).
Edit2 = son las horas restantes para que acabe el dia de salida
Edit3 = son las horas restantes para que acabe el dia de retorno
Edit4 = Total desayunos
Edit5 = Total Almuerzos
Edit6 = Total Cena
Button1 = Cálculos
Button2 = Cerrar

Código del Form

Código Delphi [-]
procedure TForm1.FormCreate(Sender: TObject);
begin
MaskEdit1.Text:='';
MaskEdit2.Text:='';
MaskEdit3.Text:='';
MaskEdit4.Text:='';
edit1.Text:='';
edit2.Text:='';
edit3.Text:='';
edit4.Text:='0';
edit5.Text:='0';
edit6.Text:='0';
ComboBox1.Text:='am';
ComboBox2.Text:='am';
end;

Código del Boton Calcular
Código Delphi [-]
procedure TForm15.Button1Click(Sender: TObject);
var
Fecha, Horas, Horae:String;
des, dest, almt, cent, alm, cen:Integer;
begin
  des:=0;
  alm:=0;
  cen:=0;
  Fecha := IntToSTr(DaysBetween(StrToDate(MaskEdit2.Text), StrToDate(MaskEdit1.Text)));
  Horas := IntToSTr(HoursBetween(StrToDateTime(MaskEdit3.Text), StrToDateTime('12:00')));
  Horae := IntToStr(HoursBetween(StrToDateTime(MaskEdit4.Text),StrToDateTime('12:00')));
  edit1.Text:=Fecha;
  edit4.Text:='0';

  if ComboBox1.Text='am' then
    begin
      edit2.Text:=IntToStr(StrToInt(Horas)+12);
    end
    else
    begin
      edit2.Text:=IntToStr(StrToInt(Horas));
    end;

  if ComboBox2.Text='am' then
    begin
      edit3.Text:=IntToStr(StrToInt(Horae)+12);
    end
    else
    begin
      edit3.Text:=IntToStr(StrToInt(Horae));
    end;

//Cálculos
if StrToInt(edit2.Text)<=15 then
  begin
    des:=1;
  end;

if StrToInt(edit3.Text)<=15 then
  begin
    des:=des+1;
  end;

//Si Faltan 12 horas para acabarse el dia

if StrToInt(edit2.Text)<=12 then
  begin
    alm:=1;
  end;

if StrToInt(edit3.Text)<=12 then
  begin
    alm:=alm+1;
  end;
//Si Faltan 6 Horas para acabarse el dia
if StrToInt(edit3.Text)<=6 then
  begin
    cen:=1;
  end;

if StrToInt(edit3.Text)<=6 then
  begin
    cent:=cen+1;
  end;

//SALIDAS
dest:=StrToInt(edit1.Text);
almt:=StrToInt(edit1.Text);
cent:=StrToInt(edit1.Text);
edit4.Text:=IntToStr(des+dest);
edit5.Text:=IntToStr(alm+almt);
edit6.Text:=IntToStr(cen+cent);
//FIN DESAYUNOS
end;

Código del Boton Cerrar
Código Delphi [-]
procedure TForm1.Button2Click(Sender: TObject);
begin
close;
end;


jejeje creo que me he ido por algo un tanto complicado pero fué la única forma que me surgio la solución espero que a alguien más le sirva
__________________
Las cosas o son, o no son...

Última edición por lKinGl fecha: 03-10-2008 a las 16:01:16.
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 17:51:14.


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