Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2010.08.27;
Скачать: [xml.tar.bz2];

Вниз

Работа с датой-временем.   Найти похожие ветки 

 
oleg1963lora   (2010-02-15 12:17) [0]

Здравствуйте уважаемые Мастера!
Имею две переменных

DateStart : TDateTime;
DateCurr  : TDateTime и два компонента

InDate : TDateTimePicker;
InTime : TDateTimePicker;
Присваиваю
 DateStart:=InDate.Date;
 DateStart:=InTime.Time;
{Проверка показывает правильные значения и даты и времени в DateStart}
Если же присвоить DateCurr:=DateStart то время сохраняется, а дата - нет. В чем моя ошибка?


 
{RASkov} ©   (2010-02-15 12:24) [1]

потому что вторым присваиванием затираешь значение присвоенное первым....


 
{RASkov} ©   (2010-02-15 12:32) [2]

> [0] oleg1963lora   (15.02.10 12:17)
> {Проверка показывает правильные значения и даты и времени в DateStart}
Если же присвоить DateCurr:=DateStart то время сохраняется, а дата - нет.

что-то не очень-то верится...


 
Ega23 ©   (2010-02-15 12:34) [3]


> что-то не очень-то верится...


Он DefaultDate просто не поменял.


 
oleg1963lora   (2010-02-15 14:09) [4]

Может я неправильно выразился.
InDate.Date = "01.02.2010"
InTime.Time = "13:00".
DateStart содержит правильные значения, а в DateCurr получаю
"27.01.2010" и "13:00" соответствено. Как такое может быть? Разве весь компонент не копируется? Что-то я не догоняю((


 
Ega23 ©   (2010-02-15 14:30) [5]

Обрати внимание, что у тебя стоит в TDateTimePicker.Date


 
12 ©   (2010-02-15 14:49) [6]


> Разве весь компонент не копируется?

нет

  d1.DateTime:=strtodatetime("01.02.2010 14:12");
  d2.DateTime:=strtodatetime("11.03.2009 11:22");
  showmessage(datetimetostr(d1.DateTime)+" -----"+datetimetostr(d2.DateTime));
  d1:=d2;

  // выбираем любые даты в компонентах на форме,
но все равно все равно одному.
Думаю, кстати, что где-то Вы уже потеряли указатель таким же образом

  showmessage(datetimetostr(d1.DateTime)+" -----"+datetimetostr(d2.DateTime));


 
oleg1963lora   (2010-02-15 15:19) [7]

Т.Е. конструкция такого вида в принципе не верна

DateStart:=InDate.Date;
DateStart:=InTime.Time; ? И сохранится последнее(то есть время), что я и наблюдаю.Дата временами вылезает установленная по умолчанию -1899 год
А я-то по наивности думал, что можно ввести что-то вроде
ДатаСтарт:=Дата+время. Оказывается не все так просто


 
12 ©   (2010-02-15 15:28) [8]


> DateStart:=InDate.Date;
> DateStart:=InTime.Time;


да, ибо написали же

> потому что вторым присваиванием затираешь значение присвоенное
> первым...

но я о другом :)
Ладно, проехали

так вот надо
DateStart:=InDate.Date + InTime.Time;


 
Ega23 ©   (2010-02-15 15:32) [9]


> ДатаСтарт:=Дата+время. Оказывается не все так просто


Просто нужно чётко понимать, что такое тип данных TDateTime.
Целая часть - количество дней, прошедших с 30.12.1899
Дробная чать - часы-минуты-секунды-миллисекунды

Поэтому рецепт таков:
Кидаем на форму 2 TDateTimePicker. Одному тип (или что там?) pkDate, второму - pkTime (вроде так, точно не помню).
Финальная дата будет выглядеть

var
 dt : TDateTime
begin
 dt := DateTimePicker1.Date + (DateTimePicker2.DateTime - Trunc(DateTimePicker2.DateTime));
 ShowMessage(FormatDateTime("dd.mm.yyyy hh:nn:ss", dt);
end;


 
Ega23 ©   (2010-02-15 15:34) [10]


> DateStart:=InDate.Date + InTime.Time;


Ну или так.


 
oleg1963lora   (2010-02-15 15:43) [11]

Вобщем выкрутился. Смотрите, что вышло.

type DateTimeArray = record
    Date  : string;
    Time  : string;
end;

var
  Level : array [1..8] of Levels;
  DateStart : DateTimeArray;
  DateCurr  : DateTimeArray;

implementation
procedure TForm1.RunGenerateClick(Sender: TObject);
{Запуск процесса генерации, создания таблиц, установки первоначального времени}
begin
 DateStart.Date:=DateToStr(InDate.Date);
 DateStart.Time:=TimeToStr(InTime.Time);
 DateCurr:=DateStart;
 CurrentDate.Text:=DateCurr.Date;
 CurrentTime.Text:=DateCurr.Time;
end;

И все. Достиг результата другой дорогой :-)
За подсказки всем СПАСИБО!


 
Ega23 ©   (2010-02-15 15:49) [12]


> И все. Достиг результата другой дорогой :-)
> За подсказки всем СПАСИБО!


Цель: Путешествие из Петербурга в Москву.
Ты его достиг другой дорогой, попутно завернув в Нью-Йорк, Сидней и Куала-Лумпур.
Но достиг, это да.  :)


 
12 ©   (2010-02-15 15:52) [13]


> Куала-Лумпур

ну там же Лумпукул очень дешевый



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

Форум: "Начинающим";
Текущий архив: 2010.08.27;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.052 c
2-1269347442
12
2010-03-23 15:30
2010.08.27
Выделяю память. Освобождать Пушкин или сам?


2-1269717199
Studd
2010-03-27 22:13
2010.08.27
Алгоритм заполнения фигуры


15-1272364526
TUser
2010-04-27 14:35
2010.08.27
Удаление комментариев и лишнего кода


2-1270715878
Дмитрий Жуков
2010-04-08 12:37
2010.08.27
"Строки"


15-1269041292
Германн
2010-03-20 02:28
2010.08.27
Инсталлятор





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский