Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2016.03.20;
Скачать: CL | DM;

Вниз

Разное "поведение" date() на XP и Win7   Найти похожие ветки 

 
Дмитрий   (2014-08-07 15:39) [0]

Разное "поведение" date() на XP и Win7

Столкнулся с разнинецей в отчетах при формировании в одной и той же версии, но в разных ОС.
Получаю через компонент TMonthCalendar дату:
...
frmDate.Calendar.Date:=date();
frmDate.ShowModal;
result:=frmDate.Calendar.Date;
...

На Вин7/х64 дата почему-то включает компоненту времени, которая равна текущему.
На ХП нет.

В чем причина? Откуда появляется текущее время?


 
ВладОшин ©   (2014-08-07 16:41) [1]

локаль одинакова?


 
Дмитрий   (2014-08-07 18:21) [2]

одинакова - 1049


 
ВладОшин ©   (2014-08-07 18:26) [3]

дело не в date()

var
 D: TDate;
begin
 D := Date;
 MonthCalendar1.Date := D;
 ShowMessageFmt("%s <-> %s",[DatetimeToStr(MonthCalendar1.Date),DatetimeToStr(D)]);

надо смотреть как MonthCalendar1 с датой работает


 
ВладОшин ©   (2014-08-07 18:32) [4]

procedure TCommonCalendar.SetDate(Value: TDate);
begin
 ReplaceTime(TDateTime(Value), FDateTime);
и .т.д...

а FDateTime при создании := now

а вот почему на XP без времени - странно. Настройки локали? Все-таки код другой?


 
Дмитрий   (2014-08-07 19:02) [5]

>Настройки локали? Все-таки код другой?
Какие настройки локали смотреть?

Код более подробно
...
var
 res, dfirst : Variant;
...
 dfirst := GetNeedDate("Укажите дату начала периода");
 if VarIsNull(dfirst) then exit;

 SaveToLog(" Начало: " + QuotedStr(FormatDateTime("yyyy-mm-dd hh:nn:ss", dfirst))      ); // <-- тут обнаруживается разница

...
 adq.ParamByName("FirstDate").Value:=dfirst;
...
end;

//-------------------------------------------------------
function GetNeedDate (Caption : String = "") : variant;
begin
 result:=null;
 frmDate:=TfrmDate.Create(Application);
 frmDate.Caption:= Caption;
 frmDate.Calendar.Date:=date();  

 frmDate.ShowModal;

 if frmDate.ModalResult = mrOK then
   result:=frmDate.Calendar.Date;

end;


 
ВладОшин ©   (2014-08-10 10:41) [6]


> Какие настройки локали смотреть?

про дату, наверное
но не уверен
думаю или прграмма (код, версия)все таки разная


> var
>  D: TDate;
> begin
>  D := Date;
>  MonthCalendar1.Date := D;
>  ShowMessageFmt("%s <-> %s",[DatetimeToStr(MonthCalendar1.
> Date),DatetimeToStr(D)]);

этот код отрабытывает на разных машинах по разному?


 
Дмитрий   (2014-08-26 18:30) [7]


> думаю или прграмма (код, версия)все таки разная

для проверки я запускаю из публичной папки на сервере один и тот же экзешник
в заставке выводится дата и время компиляции


> этот код отрабытывает на разных машинах по разному?

на машинах с ХР и Вин7 этот код отрабатывает одинаково
---------------------------
26.08.2014 18:25:10 <-> 26.08.2014
---------------------------
OK  


 
junglecat   (2014-08-26 18:34) [8]

> [7] Дмитрий   (26.08.14 18:30)

календарь - это обертка над стандартным виндовым контролом. Видимо, в вин7 он по дефолту включает текущее время, если оно не задано явно.
как вариант - TDate(Trunc(MonthCalendar1.Date))


 
Inovet ©   (2014-08-26 18:36) [9]

> [7] Дмитрий   (26.08.14 18:30)
> в заставке выводится дата и время компиляции

Календарь здесь зачем вообще?


 
Дмитрий   (2014-08-27 13:13) [10]

календарь не для заставки, а для задачи, в ч-ти выбор интервала отчетного периода
заставка для контроля запускаемой версии



Страницы: 1 вся ветка

Текущий архив: 2016.03.20;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.007 c
15-1434039852
pavelnk
2015-06-11 19:24
2016.03.20
Виндовс 10 и лицензии


15-1436592520
xayam from NB
2015-07-11 08:28
2016.03.20
DHT


15-1436375459
aka
2015-07-08 20:10
2016.03.20
школьная задача


15-1436797956
xayam
2015-07-13 17:32
2016.03.20
CloseableTabItem


2-1408455021
harisma
2014-08-19 17:30
2016.03.20
Дополнить число ведущими нулями