- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
procedure TForm1.Button2Click(Sender: TObject);
var
result : Tdatetime;
begin
Result := EncodeDate(1970, 1, 1) + ((strtofloat(edit26.Text)+(strtofloat(edit2.Text)*3600)) / 86400); {86400=No. of secs. per day}
edit23.Text := formatdatetime('d', Result);
edit24.Text := formatdatetime('m', Result);
edit25.Text := formatdatetime('yyyy', Result);
edit27.Text := formatdatetime('h', Result);
edit28.Text := formatdatetime('n', Result);
edit29.Text := formatdatetime('s', Result);
edit30.text := datetimetostr(result);
form1.ActiveControl := edit30;
end;
procedure TForm1.Button3Click(Sender: TObject);
var
x,y : extended;
begin
edit12.Text := formatdatetime('d', datetimepicker2.date);
edit17.Text := formatdatetime('m', datetimepicker2.date);
edit18.Text := formatdatetime('yyyy', datetimepicker2.date);
x := (EncodeDate(strtoint(edit18.text), strtoint(edit17.text), strtoint(edit12.text)) - EncodeDate(1970, 1, 1)) * 86400 ;
y := (strtoint(edit20.text)*3600) + (strtoint(edit21.text)*60) + strtoint(edit22.text);
x := x+y-(strtofloat(edit1.Text)*3600);
edit19.Text := floattostr(x);
form1.ActiveControl := edit19;
end;
Особенно старательный ковнокодер, умудрился растянуть на 30 строк то, что реально заняло у меня 8.
ну я не говорю еще про большую описательную часть его кода.
guest 15.09.2009 12:33 # 0
gorky 15.09.2009 16:40 # −1
function unixtimestamp(ConvDate:TDateTime):intege r;
begin
Result:=trunc((ConvDate-UnixStartDate)*86400);//example: unixtimestamp(now);
end;
function UnixToDateTime(USec:integer):TDateTime;
begin
Result:=(Usec/86400)+UnixStartDate;//Example: UnixToDateTime(1003187418);
end;
Прости, 9 строк =)
guest 16.09.2009 13:15 # +1
1. UnixToDateTime есть стандартная функция в DateUtils Unit.
2. В unix дата хранится не в Integer, а в Int64 иначе 19 января 2038 года, ваша система отправится в 1 января 1970 года.
gorky 16.09.2009 16:46 # −1
2. ну до 2038 года еще как до Москвы раком. ну можно переписать в принципе.
guest 16.09.2009 17:19 # +2
тяжёлый случай
guest 15.09.2009 13:39 # 0
andrey.goryachev 15.09.2009 15:52 # 0
gorky 15.09.2009 16:43 # +1
в вышеприведенном примере надо было просто в TDateTime всё хранить, а не куячить по Edit'ам.
guest 24.12.2009 13:19 # 0
Я так и не понял, Edit'ы вообще нужны или нет?
30 строк там, т.к. идет еще раскладывание по Edit'ам.
Еще посчитаем пустые строки и переносы var.
В варианте gorky их нет вообще.
Короче, gorky за такой пост -1