저 어제도 말한 완전초보인데요
주차요금을 계산할려고 하는데요
시간을 타임컴포로 받아서 그걸 10분단위로 1000원씩 계산할려면 어떻게 해야합니까....
전혀 지식이 없는관계로 대놓고 물어보네요 많이 부끄럽고 죄송스럽지만 꼭알고싶어서요...
허접한 소스 올려봅니다 수정좀......
<!--codes-->
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, ComCtrls;
type
TForm1 = class(TForm)
Edit1: TEdit;
Edit3: TEdit;
Edit4: TEdit;
Edit5: TEdit;
Label1: TLabel;
Label4: TLabel;
Label5: TLabel;
Button1: TButton;
Button2: TButton;
Timer1timer: TTimer;
edit2: TEdit;
Button3: TButton;
Edit6: TEdit;
procedure Button3Click(Sender: TObject);
procedure Edit3Change(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
//procedure TForm1.Timer1Timer(Sender: TObject);
private
{ Private declarations }
EditTime1 : TDateTime;
EditTime2 : TDateTime;
EditTime3 : TDateTime;
EditTime4 : TDateTime;
editmoney : integer;
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
function DayBetween(Date1, Date2: TDateTime): integer;
var
Day1, Day2 : TDateTime;
begin
//Day1 := StrToDate( `2009-12-31` );
//Day2 := StrToDate( `2009-11-30` );
Day1 := StrToDate( FormatDateTime('YYYY-MM-DD', Date1) );
Day2 := StrToDate( FormatDateTime('YYYY-MM-DD', Date2) );
Result := integer( Trunc( Day1 - Day2 ));
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
EditTime1 := Now;
Edit1.Text := FormatDateTime('YYYY-MM-DD HH:NN:SS', EditTime1);
end;
//begin
// 들어온 시간
// EditTime2 := EditTime1;
//Edit2.Text := Edit1.Text;
//end;
procedure TForm1.Edit3Change(Sender: TObject);
begin
edittime2 := edittime1;
edit2.Text := edit1.text;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
if (edit2.Text) ='' then
begin
showmessage('들어온 시간을 입력해주세요') ;
edit2.SetFocus;
exit;
end
else
// 나간 시간
EditTime3 := now;
Edit3.Text := FormatDateTime('yyyy-mm-dd HH:NN:SS', EditTime3);
// 주차한 시간
EditTime4 := EditTime3 - EditTime2;
Edit4.Text := FormatDateTime('HH:NN:SS', EditTime4);
// 날짜 차이
Edit5.Text := IntToStr( DayBetween(EditTime3, EditTime2) );
end;
procedure TForm1.Button3Click(Sender: TObject);
// 여기서 계산을 하고싶은데요 뭐를 어찌해야할지 전혀 모르겠네요
//begin
// editmoney :=(EditTime4)*1000 ;
// edit6.Text := editmoney ;
//end;
end.
<!--CodeE-->
설마 이렇게 많이 받지는 않겠죠? ㅎㅎ
보시기 편하시라 일,시,분 으로 나눠서 계산했습니다~.
var
li_DayMoney: Integer; // 일별 요금
li_HHMoney: Integer; // 시간당 요금
li_NNMoney: Integer; // 분당 요금
lf_TotMoney: Double; // 최종합계 ... 요금 같은 경우는 대부분 실수(Double)형으로 사용하시는 게 좋습니다. ^^
begin
li_DayMoney := StrToIntDef(Edit5.Text, 0) * 144000; // 일별 요금계산
li_HHMoney := StrToIntDef(Copy(Edit4.Text,1,2), 0) * 6000; // 시간당 요금계산
li_NNMoney := (StrToIntDef(Copy(Edit4.Text,4,2), 0) div 10) * 1000; // 분당 요금계산(10분에 천원)
lf_TotMoney := li_DayMoney + li_HHMoney + li_NNMoney;
Edit6.Text := Format('%.0n',[lf_TotMoney]); // 천단위 컴마표기된 최종합계금액
end;
참고하시고 좋은 결과 있으시길 ㅡ_ㅡv 그럼 급히 주린 배를 채우러 전 이만 ~~