Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.02.2007, 23:33   #1
nova-alex
Пользователь
 
Регистрация: 06.11.2006
Сообщений: 51
По умолчанию Преобразование даты в вещественное число

Знаю что дата и время могут представляться как вещественное число. Использую сам выражения типа x:=date1-date2, где x типа real, а date1 и date2 - тип date.
Есть ли, и какая она, функция прямого преобразования даты в число, что-то вроде DateToFloat.
И в целях повышения образованности, подскажите - от какого числа и года берется начало исчиления, т.е. 0?
nova-alex вне форума Ответить с цитированием
Старый 12.02.2007, 00:34   #2
Небесный
Зелень
Форумчанин
 
Аватар для Небесный
 
Регистрация: 03.02.2007
Сообщений: 302
По умолчанию

Вот что-то нарыл в книге, правда все наоборот, вещественное число переводиться в дату.
Вот код:
Цитата:
procedure TfmExemple.bbRunClick(Sender: TObject);
{Показывает вещественное число, введенное в поле edInput, в формате даты-времени}
var
k: Double;
begin
// Преобразуем строковой ввод в вещественое число
try
k := StrToFloat(edInput.Text);
except
ShowMessage('Ошибка записи вещественного числа');
edInput.SelectAll;
Exit
end;
// Показываем результат как дату-время
lbOutput.Caption := FormatDateTime('dd.mm.yyyy hh:mm:ss', k);
//Возвращаем фокус ввода в edInput
edInput.SetFocus;
end;
Небесный вне форума Ответить с цитированием
Старый 12.02.2007, 00:35   #3
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Целая часть вещественного числа - это дата.
Пример: StrToDate('01.04.2007')
Соответственно, дробная часть - время.
Пример: StrToTime('23:15:30')
Их сумма - искомое вещественное число, т.е. однозначно определенный момент времени.
А отсчет в IBM PC осуществляется с даты после 12/30/1899.
Замечу, что все это я в памяти не держу и при подготовке ответа на ваш вопрос ничем, кроме стандартного дельфийского хэлпа, не пользовался...
Так что учитесь пользоваться хэлпом.
mihali4 вне форума Ответить с цитированием
Старый 12.02.2007, 01:09   #4
nova-alex
Пользователь
 
Регистрация: 06.11.2006
Сообщений: 51
По умолчанию

Цитата:
Сообщение от mihali4 Посмотреть сообщение
Так что учитесь пользоваться хэлпом.
Я бы сказал "общаться " с хэлпом, потому как перед этим 2 часа хэлп бороздил, да только вокруг да около. И дату помнил...до недавнего времени.
Спасибо!
nova-alex вне форума Ответить с цитированием
Старый 03.05.2007, 05:23   #5
broker_001
Новичок
Джуниор
 
Регистрация: 02.05.2007
Сообщений: 1
Радость

Извините канешно что вмешиваюсь, а мог бы кто-нибуть подробнее описать, а то я новичок и мне смысл понятен, но как реализовать это на Делфях не очень понятно...
broker_001 вне форума Ответить с цитированием
Старый 03.05.2007, 10:51   #6
Shuraken
Форумчанин
 
Аватар для Shuraken
 
Регистрация: 16.04.2007
Сообщений: 298
По умолчанию

procedure TForm1.Button1Click(Sender: TObject);
var
k: real;
begin
k := Date + Time; //Date возвращает текущую дату, Time текущее время и далее работаешь с k, как с вещественным числом.
end;
Не надо ничего усложнять. Все достаточно тривиально.
Shuraken вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как из Даты взять первое число? valerij Microsoft Office Excel 15 17.06.2008 13:39
Найти и вывести все слова,у котоpых число гласных букв пpевышает число согласных. Briz Помощь студентам 2 11.05.2008 00:56
Ввести число N и определить делится ли оно без остатка на число M (VBA) Ivanich Microsoft Office Excel 7 24.04.2008 19:43
Преобразование... prizrak1390 Общие вопросы Delphi 2 02.04.2008 11:24
Число N, заменить одну из его цифр, чтобы получилось число, max близкое к некоторой степени двойки urgu_st Помощь студентам 13 23.10.2007 09:14