Форум программистов, компьютерный форум, киберфорум
Наши страницы

Delphi для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 24, средняя оценка - 4.88
KoRNoLiO
0 / 0 / 0
Регистрация: 24.01.2010
Сообщений: 5
#1

Формат времени - Delphi

19.01.2012, 09:12. Просмотров 3638. Ответов 4
Метки нет (Все метки)

Есть массив переменных типа TTime, в конечном итоге находится сумма
И находится она в 24-х часовом формате, то есть если у меня 25 часов, выведет - 1 час. Как выйти за пределы 24 часов?
З.Ы.в FormatDateTime такого формата не нашел =\
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.01.2012, 09:12
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Формат времени (Delphi):

Формат отображения времени 00:00 в Label - Delphi
Народ, возникла ситуация. При нажатии на кнопку запускается таймер и должен отображать время в Label, начиная с 00:00. Время увеличивается...

Описать процедуру, которая вычисляет время, прошедшее от времени t1 до времени t2 - Delphi
помогите пожалуйста описать процедуру интервал (d,t12,t1), которая вычисляет время d, прошедшее от времени t1 до времени t2 d=t2-t1(...

Реализация течения времени. Виртуальное время. Замедление и ускорение относительно реального времени. - Delphi
Опишите, пожалуйста, подробнее как реализовать течение времени в программе. То есть, на главном окне отображается текст, с текущей датой...

Формат - Delphi
Всем привет! Подскажите, что за система счисления const PRIMARY = $4D4D; Добавлено через 45 секунд нагуглить не могу..

Формат чисел - Delphi
Всем здрасьте! Генерировал числа, пример (007 до 777), не было нулей. Нашел такое решение %.3d, но оно на 3 значное число. Нужно бывает...

Формат строки - Delphi
Здравствуйте, есть: 1) функция определяющая размер папки с файлами: procedure GetDirSize(const aPath: string; var SizeDir: Int64); ...

4
Mawrat
12794 / 5701 / 672
Регистрация: 19.09.2009
Сообщений: 8,807
19.01.2012, 10:14 #2
Типы: TDateTime, TDate, TTime предназначены для хранения сведений о времени. И являются псевдонимами вещественного типа Double. Данные о времени в переменных этих типов хранятся таким образом: считается, что целая часть - это целое количество суток, прошедших с момента 30.12.1899 00:00:000. А дробная часть - это прошедшая часть суток (неполные сутки).
Например:
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
procedure TForm1.Button1Click(Sender: TObject);
var
  Dt : TDateTime;
begin
  Dt := 0;
  Memo1.Lines.Add('Dt := 0;');
  Memo1.Lines.Add('Нулевое время:');
  Memo1.Lines.Add(FormatDateTime('dd.mm.yyyy" / "hh:nn:ss:zzz', Dt));
  Memo1.Lines.Add('');
 
  Dt := 1;
  Memo1.Lines.Add('Dt := 1;');
  Memo1.Lines.Add('Одни сутки:');
  Memo1.Lines.Add(FormatDateTime('dd.mm.yyyy" / "hh:nn:ss:zzz', Dt));
  Memo1.Lines.Add('');
 
  Dt := 2;
  Memo1.Lines.Add('Dt := 2;');
  Memo1.Lines.Add('Двое суток:');
  Memo1.Lines.Add(FormatDateTime('dd.mm.yyyy" / "hh:nn:ss:zzz', Dt));
  Memo1.Lines.Add('');
 
  Dt := 2.5;
  Memo1.Lines.Add('Dt := 2.5;');
  Memo1.Lines.Add('Двое с половиной суток:');
  Memo1.Lines.Add(FormatDateTime('dd.mm.yyyy" / "hh:nn:ss:zzz', Dt));
  Memo1.Lines.Add('');
 
  Dt := 2 + 1/24;
  Memo1.Lines.Add('Dt := 2 + 1/24;');
  Memo1.Lines.Add('Двое суток и один час. Т. к., час равен 1/24 суток:');
  Memo1.Lines.Add(FormatDateTime('dd.mm.yyyy" / "hh:nn:ss:zzz', Dt));
  Memo1.Lines.Add('');
 
  Dt := 2 + 1/24 + 1/(24 * 60);
  Memo1.Lines.Add('Dt := 2 + 1/24 + 1/(24 * 60);');
  Memo1.Lines.Add('Двое суток, один час и одна минута:');
  Memo1.Lines.Add(FormatDateTime('dd.mm.yyyy" / "hh:nn:ss:zzz', Dt));
  Memo1.Lines.Add('');
 
  Dt := 2 + 1/24 + 1/(24 * 60) + 1/(24 * 60 * 60);
  Memo1.Lines.Add('Dt := 2 + 1/24 + 1/(24 * 60) + 1/(24 * 60 * 60);');
  Memo1.Lines.Add('Двое суток, один час, одна минута и одна секунда:');
  Memo1.Lines.Add(FormatDateTime('dd.mm.yyyy" / "hh:nn:ss:zzz', Dt));
  Memo1.Lines.Add('');
 
  Dt := 2 + 1/24 + 1/(24 * 60) + 1/(24 * 60 * 60) + 1/(24 * 60 * 60 * 1000);
  Memo1.Lines.Add('Dt := 2 + 1/24 + 1/(24 * 60) + 1/(24 * 60 * 60 * 1000);');
  Memo1.Lines.Add('Двое суток, один час, одна минута, одна секунда и одна миллисекунда:');
  Memo1.Lines.Add(FormatDateTime('dd.mm.yyyy" / "hh:nn:ss:zzz', Dt));
end;
Надо иметь в виду, что отсчёт времени от момента 30.12.1899 00:00:000 - это принятая договорённость. Но нам ничего не мешает отсчитывать время от другого момента. Только об этом не будут "знать" функции, работающие со временем.
---
KoRNoLiO, в твоей задаче нужно самостоятельно извлекать количество часов:
Delphi
1
2
3
4
5
6
7
8
9
var
  Dt : TDateTime; //Или TTime;
  H : Integer;
begin
...
  //Количество целых часов:
  H := Trunc(Dt * 24);
  ShowMessage('Прошло целых часов: ' + IntToStr(H));
end;
2
AStavr
0 / 0 / 0
Регистрация: 09.10.2015
Сообщений: 19
02.05.2016, 17:57 #3
Mawrat, Здравия,
есть универсальный перевод даты Р.Х. в дату от С.М.З.Х. ?
ну если ещё и время?
Через массив нужно делать?
0
qwertehok
1711 / 1702 / 369
Регистрация: 29.08.2013
Сообщений: 11,467
02.05.2016, 18:40 #4
а нужно ли вообще?
у вас задание есть?
1
AStavr
0 / 0 / 0
Регистрация: 09.10.2015
Сообщений: 19
03.05.2016, 07:18 #5
Да конечно.
Не могу определить оптимальный или быстрый путь.
А задание есть и давно. Решения нет..., пока нет...
0
03.05.2016, 07:18
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.05.2016, 07:18
Привет! Вот еще темы с ответами:

денежный формат - Delphi
Доброго времени суток форумчане :) Подскажите как отобразить в двух последних столбцах Stringgrida формат Currency Спасибо за помощь...

doc формат - Delphi
Как можно открыть файл формата doc в richedit. Я читала про это но не смогла сделать. Дайте исходник если можете пожалуйста

Формат файла - Delphi
Пишу программу, ей будут пользоваться много человек:) (ну штук 10 наверно) и они между собой будут передавать определенную информацию, сеть...

Нечитает формат doc - Delphi
Всем привет! Делаю текстовый редактор. Использую компонент opendialog а текст вывожу на richedit. В фильтре opendialog прописал формат...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.