Topic: ДАТА и ВРЕМЯ...

Всем хорошего настроения!
у меня два вопроса:
1) На форме есть DateTimePicker1(Date) и DateTimePicker2(Time)
устанавливая в них значения... возможно их отобразить автоматически в Edit1?
2) устанавливая в них значения... возможно их отобразить автоматически в Edit1
где в  Edit1 присутствует МАСКА  00.00.0000 00:00:00;0;_  (если можно без секунд)
Помогите пожалуйста!!!

Re: ДАТА и ВРЕМЯ...

Если честно не до конца понял 2 пункт.
Нужно с присутствующей маской туда вписать датувремя ? или маску изменить ?

Post's attachments

Attachment icon Новая папка.7z 273.68 kb, 564 downloads since 2016-03-29 

Re: ДАТА и ВРЕМЯ...

RZ-007

Попробуйте так, настройте чтобы DateTimePicker1 показывал время, DateTimePicker2 дату.

procedure Form1_DateTimePicker2_OnChange (Sender: string);
begin
    if Form1.DateTimePicker1.Checked and Form1.DateTimePicker2.Checked then
    begin
        Form1.Edit1.Text := FormatDateTime('ddmmyyyyhhnnss', Frac(Form1.DateTimePicker1.DateTime) + Trunc(Form1.DateTimePicker2.DateTime) );
    end else Form1.Edit1.Clear;
end;

procedure Form1_DateTimePicker1_OnChange (Sender: string);
begin
    if Form1.DateTimePicker1.Checked and Form1.DateTimePicker2.Checked then
    begin
        Form1.Edit1.Text := FormatDateTime('ddmmyyyyhhnnss', Frac(Form1.DateTimePicker1.DateTime) + Trunc(Form1.DateTimePicker2.DateTime) );
    end else Form1.Edit1.Clear;
end;
Dmitry.

Re: ДАТА и ВРЕМЯ...

Дмитрий это работает..ОК!!!
Подскажите, что в этот скрипт надо дописать, что бы и вводя в МАСКУ
отобразились данные в DateTimePicker1 (время) и DateTimePicker2 (дата)????
Пожалуйста!!!

Re: ДАТА и ВРЕМЯ...

RZ-007 wrote:

Дмитрий это работает..ОК!!!
Подскажите, что в этот скрипт надо дописать, что бы и вводя в МАСКУ
отобразились данные в DateTimePicker1 (время) и DateTimePicker2 (дата)????
Пожалуйста!!!

Посмотрите пожалуйста данную тему
http://myvisualdatabase.com/forum/viewtopic.php?id=2099

Dmitry.

6 (edited by RZ-007 2016-03-31 21:01:14)

Re: ДАТА и ВРЕМЯ...

Огромное спасибо Вам Дмитрий и конечно же Вам iacovlogica!!!
Дмитрий я объединил все это в кучку и скрипт:
из даты в маску и из маски в дату РАБОТАЕТ все ОК!!!
Теперь скромное желание привязать к ним "ДЕНЬ НЕДЕЛИ" в ComboBox1....
Вводим данные  в DateTimePicker2 (дата)...они отображаются в МАСКЕ и  в ComboBox1 "ДЕНЬ НЕДЕЛИ" ...ОК!
Проблема:
Вводим данные в МАСКУ...  данные отображаются только в DateTimePicker2 (дата),
не получается заставить работать ComboBox1 "ДЕНЬ НЕДЕЛИ" при вводе  данные в МАСКУ...
Взгляните пожалуйста!!!
проект прилагается...

Post's attachments

Attachment icon ТЕСТ.zip 338.43 kb, 531 downloads since 2016-03-31 

Re: ДАТА и ВРЕМЯ...

RZ-007
дополнил код данного события

procedure Form2_Edit1_OnChange (Sender: string);
var
    s: string;
    YY, MM, DD: string;
    HH, MIN, SEC: string;
    dt: TDateTime;
    WDay: integer;
begin
    s := Form2.Edit1.Text;
    if Length(s)=14 then
    begin
        DD := Copy(s, 1, 2);
        MM := Copy(s, 3, 2);
        YY := Copy(s, 5, 4);

        HH := Copy(s, 9, 2);
        MIN := Copy(s, 11, 2);
        SEC := Copy(s, 13, 2);

        try
            dt := Trunc(EncodeDate( StrToInt(YY),StrToInt(MM),StrToInt(DD) )) + Frac(EncodeTime( StrToInt(HH),StrToInt(MIN),StrToInt(SEC), 0 ));
            Form2.DateTimePicker1.DateTime := Frac(dt);
            Form2.DateTimePicker2.DateTime := Trunc(dt);
            Form2.Edit1.Color := clWhite;

            WDay := DayOfWeek(Form2.DateTimePicker2.Date)-1;
            if WDay = 0 then Form2.ComboBox1.ItemIndex := 7 else Form2.ComboBox1.ItemIndex := WDay;
        except
            Form2.DateTimePicker1.Checked := False;
            Form2.DateTimePicker2.Checked := False;
            Form2.Edit1.Color := clRed;
            Form2.ComboBox1.ItemIndex := 0;
        end;
    end else
    begin
        Form2.DateTimePicker1.Checked := False;
        Form2.DateTimePicker2.Checked := False;
        Form2.Edit1.Color := clWhite;
    end;
end;

надеюсь вы не собираетесь сохранять день недели в базу )

Dmitry.

Re: ДАТА и ВРЕМЯ...

Дмитрий огромное спасибо Вам!!!

надеюсь вы не собираетесь сохранять день недели в базу

Вообще-то собираюсь...с помощью ComboBox1
А какие могут возникнуть проблемы?

Re: ДАТА и ВРЕМЯ...

RZ-007 wrote:

Вообще-то собираюсь...с помощью ComboBox1
А какие могут возникнуть проблемы?

В базу данных непринято сохранять лишнюю информацию, так например если в базу сохраняется дата, нет смысла сохранять день недели этой даты, т.к. день недели легко выяснить зная дату.

Dmitry.

Re: ДАТА и ВРЕМЯ...

В базу данных непринято сохранять лишнюю информацию, так например если в базу сохраняется дата, нет смысла сохранять день недели этой даты, т.к. день недели легко выяснить зная дату.

Спасибки ...ценная  информация...
тогда напрашивается следующий вопрос:
1) через вычеслительное поле...???что туда вписать???
2) как  устроить ПОИСК???...ComboBox1 получается все равно нужен...как его тогда настроить???

Re: ДАТА и ВРЕМЯ...

RZ-007
Сделал для вас проект с примером, как вывести в грид название недели и организовать поиск по неделям.

Post's attachments

Attachment icon Week name in grid and search_ru.zip 7.97 kb, 564 downloads since 2016-04-07 

Dmitry.

Re: ДАТА и ВРЕМЯ...

О, Дмитрий это РЕАЛЬНО КРУТО!!!!
СПАСИБО ВАМ ОГРОМНОЕ!!!!!!!!!!!!!

13 (edited by RZ-007 2016-10-02 22:39:22)

Re: ДАТА и ВРЕМЯ...

Всем хорошего настроения!!!
имею:

procedure Form1_Button1_OnClick (Sender: string; var Cancel: boolean);
var
sDate: String;
{..........................}
begin
{..........................}
sDate:=('2016.10.03 11:11:11');
sDate:= '"'+ FormatDateTime('yyyy-MM-DD hh:nn:ss.000',StrToDateTime(m))+ '"';
SQLExecute ('INSERT INTO AAA (mydata) VALUES (''' + sDate + ''');');
end;

РУГАЕТСЯ: "2016.10.03 11:11:11"  is not a valid floaiting point value!!!
но если меняю sDate:=('03.10.2016 11:11:11'); , тогда всё ОК!!!
ДРУЗЬЯ ПОМОГИТЕ :
сделать запись в таблицу "ААА"???
или в строке sDate:=('2016.10.03 11:11:11'); изменить формат строки на sDate:=('03.10.2016 11:11:11');???
или в sDate:= '"'+ FormatDateTime('yyyy-MM-DD hh:nn:ss.000',StrToDateTime(m))+ '"'; ,что то изменить???
Зарание СПАСИБО!!!

Re: ДАТА и ВРЕМЯ...

RZ-007
К сожалению в данном скрипте я не вижу строку, которая могла бы вызвать данную ошибку. Также не ясно что за переменная m.


Приложите лучше ваш проект, постараюсь помочь.

Dmitry.

15 (edited by RZ-007 2016-10-03 11:30:02)

Re: ДАТА и ВРЕМЯ...

DriveSoft wrote:

RZ-007
К сожалению в данном скрипте я не вижу строку, которая могла бы вызвать данную ошибку. Также не ясно что за переменная m.

переменная m...это опечатка...имелось ввиду sDate
А ошибку вызывает  sDate:=('2016.10.03 11:11:11')    "2016.10.03 11:11:11" is not a valid date and time.
если изменяю на sDate:=('03.10.2016 11:11:11'); , тогда всё ОК!!!

Re: ДАТА и ВРЕМЯ...

тест проект смастерить???

17 (edited by RZ-007 2016-10-03 16:44:18)

Re: ДАТА и ВРЕМЯ...

Дмитрий...разобрался...ПОСТ№13...
У меня на ПК стоит дата в настройках 03.10.2016, а sDate:=('2016.10.03 11:11:11')   
из за этого выдаёт ошибку "2016.10.03 11:11:11" is not a valid date and time.
если  я у себя на ПК меняю дату в настройках на " DD.MM.yyyy"...тогда всё ОК!!!
исходя из этого ВОПРОС изменяется:
Возможно ли по клику на битон изменить формат даты на ПК????????????????
или есть способ...подстраивать формат  sDate:=('2016.10.03 11:11:11')
под формат который установлен наПК???????????????????????????????????

Re: ДАТА и ВРЕМЯ...

RZ-007
В вашем случае проще всего просто заменить точки на тире, в итоге получится тот самый формат даты, который необходим для SQL запроса

procedure Form1_Button1_OnClick (Sender: string; var Cancel: boolean);
var
   sDate: String;
   {..........................}
begin
   {..........................}
   sDate:='2016.10.03 11:11:11';
   sDate := ReplaceStr(sDate, '.', '-');
   SQLExecute ('INSERT INTO AAA (mydata) VALUES (''' + sDate + ''');');
end;
Dmitry.

Re: ДАТА и ВРЕМЯ...

Дмитрий я ожидал...большущий скриптище, а тут...
Здорово!!!Спасибо!!!

Re: ДАТА и ВРЕМЯ...

есть вычислительное поле:
(julianday(end) - julianday(begin)

в гриде показывается например 12.0 или 13.0
а надо чтобы было без точек, например 12 или 13
помогите плиз

Re: ДАТА и ВРЕМЯ...

katmir wrote:

есть вычислительное поле:
(julianday(end) - julianday(begin)

в гриде показывается например 12.0 или 13.0
а надо чтобы было без точек, например 12 или 13
помогите плиз

Проверил, на моем тестовой проекте такого не наблюдается, прикрепите пожалуйста ваш проект как zip архив (без exe и dll), проверю в чем дело.

Dmitry.

Re: ДАТА и ВРЕМЯ...

DriveSoft wrote:
katmir wrote:

есть вычислительное поле:
(julianday(end) - julianday(begin)

в гриде показывается например 12.0 или 13.0
а надо чтобы было без точек, например 12 или 13
помогите плиз

Проверил, на моем тестовой проекте такого не наблюдается, прикрепите пожалуйста ваш проект как zip архив (без exe и dll), проверю в чем дело.


Прилагаю

Post's attachments

Attachment icon raznost.rar 6.6 kb, 499 downloads since 2016-10-08 

23 (edited by RZ-007 2016-11-07 22:16:57)

Re: ДАТА и ВРЕМЯ...

Друзья!!! помогите со скриптом...
- НА Form1 кликаем на Button1...
- запускается таймер обратного отчёта в Label1...
- при обнулении Label1(00:00:00) открывается Form2
На форуме есть примеры таймера...не смог прикрутить живой Label1

var
   Timer: TTimer;
   iTimer: integer;

procedure Form1_OnShow (Sender: string; Action: string);
begin
     Timer := TTimer.Create(nil); // create timer
     Timer.OnTimer := @OnTimer;  // event procedure
     Timer.Interval := 1000; // 5 sec
     Timer.Enabled := True;  // Start timer
     frmSplash.ShowModal; // Show welcome screen
end;

procedure OnTimer (Sender: TObject);
begin
     iTimer := iTimer + 1;
     frmSplash.Label2.Caption := 'Start after '+IntToStr(5-iTimer)+' seconds or press ''Start'' button.';

   //    frmSplash.Label2.Caption := '00:'+IntToStr(15-iTimer)+;
   //    frmSplash.Label2.Caption := FormatDateTime('nn:ss',(+IntToStr(5-iTimer)+));


     if iTimer > 5 then
     begin
          Timer.Enabled := False;
          frmSplash.Close;
          Timer.Free;
     end;
end;

procedure frmSplash_Button1_OnClick (Sender: string; var Cancel: boolean);
begin
     frmSplash.Close;
end;


Это возможно???(можно только скрипт)
рис.прилагается...

Post's attachments

Attachment icon Скриншот 08-11-2016 005549.png 8.03 kb, 242 downloads since 2016-11-07 

Re: ДАТА и ВРЕМЯ...

RZ-007


пример

var
   Timer: TTimer;
   iTimer: integer;

procedure Form1_Button1_OnClick (Sender: string; var Cancel: boolean);
begin
    iTimer := 10;
    Timer.Enabled := True;  // Start timer
end;

procedure Form1_OnShow (Sender: string; Action: string);
begin
     Timer := TTimer.Create(nil); // create timer
     Timer.OnTimer := @OnTimer;  // event procedure
     Timer.Interval := 1000;
end;

procedure Form1_OnClose (Sender: string; Action: string);
begin
    Timer.Free;
end;

procedure OnTimer (Sender: TObject);
begin
    Form1.Label1.Caption := FormatDateTime('hh:nn:ss', iTimer/86400);
    Dec(iTimer);
    if iTimer < 0 then
    begin
        Timer.Enabled := False;
        Form2.Show;
    end;
end;
Dmitry.

Re: ДАТА и ВРЕМЯ...

Дмитрий огромное Вам СПАСИБО!!!
Друзья кому интересно скрипт РАБОЧИЙ...
правда кое что поправил...поменял местами...Дмитрий надеюсь правильно!!!

procedure Form1_Button1_OnClick (Sender: string; var Cancel: boolean);
begin
    iTimer := 90;               //задаём время в сек...
    Timer.Enabled := True;      // Start timer
    Timer.OnTimer := @OnTimer;  // event procedure
end;

procedure Form1_OnShow (Sender: string; Action: string);
begin
    Timer := TTimer.Create(nil); // создать таймер
    Timer.Interval := 1000;
end;

ЕЩЁ РАЗ СПАСИБО!!!