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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 04.01.2010, 21:14   #1
Marsel737
Форумчанин
 
Аватар для Marsel737
 
Регистрация: 09.11.2009
Сообщений: 669
Смущение Работа с датой (Определение числа в зависимости от даты)

Всем доброго времени суток.

Подскажите пожалуйста как бы мне это попроще организовать, вообщем к примеру сегодняшнему дню соответствует число 345, завтрашнеме 346, послезавтрашнему 347 и т.д. до бесконечности. Так вот как бы мне попроще сделать чтобы определялось это самое число в зависимости от даты.
Я не всегда знаю, о чем говорю, но знаю, что прав. © Мухаммед Али.
К чёрту обстоятельства. Я создаю возможности. © Брюс Ли
Marsel737 вне форума Ответить с цитированием
Старый 04.01.2010, 21:35   #2
DeKot
Участник клуба
 
Аватар для DeKot
 
Регистрация: 12.08.2008
Сообщений: 1,977
По умолчанию

Вот цитата из учебника А.Я Архангельского "100 компонентов общего назначения" об компоненте DateTimePicker
Цитата:
При чтении Date надо учитывать тип этого свойства — TDateTime, представляющий собой число с плавающей запятой, целая часть которого содержит число дней, отсчитанное от некоторого начала календаря, а дробная часть равна части 24-часового дня, т.е. характеризует время и не относится к дате. Для 32-разрядных версий Delphi за начало календаря принята дата 12/30/1899 00 часов. В Delphi 1 за начало отсчета принят год 1, т.е. для перевода даты Delphi 1 в дату последующих версий Delphi надо вычесть из даты число 693594.
Может поможет.
И не сомневайся даже ... отдых - кайф, работа - лажа!
DeKot вне форума Ответить с цитированием
Старый 04.01.2010, 21:43   #3
Marsel737
Форумчанин
 
Аватар для Marsel737
 
Регистрация: 09.11.2009
Сообщений: 669
По умолчанию

DeKot, спасибо, это уже что-то, но думаю проще будет сделать через нахождение разности двух дат, подскажите только как в toDate запихнуть сегодняшнюю дату

Цитата:
Пример кода : Нахождение разности дней между двумя значениями date+time.

Код:
var
  fromdate, toDate : TDateTime;

begin
  // Установка наших переменных дат
  fromDate := EncodeDateTime(2000, 02, 26, 10, 0, 0, 0);
  toDate   := EncodeDateTime(2000, 02, 29,  9, 0, 0, 0);

  // Отображение этих дат и дней между ними
  ShowMessage('С даты = '+DateTimeToStr(fromDate));
  ShowMessage('До даты = '+DateTimeToStr(toDate));
  ShowMessage('Целых дней = '+
              IntToStr(DaysBetween(toDate, fromDate))+' дней');
end;
С даты = 26/02/2000 10:00:00
До даты = 29/02/2000 09:00:00
Целых дней = 2 дней
Я не всегда знаю, о чем говорю, но знаю, что прав. © Мухаммед Али.
К чёрту обстоятельства. Я создаю возможности. © Брюс Ли
Marsel737 вне форума Ответить с цитированием
Старый 04.01.2010, 21:47   #4
DeKot
Участник клуба
 
Аватар для DeKot
 
Регистрация: 12.08.2008
Сообщений: 1,977
По умолчанию

Цитата:
как в toDate запихнуть сегодняшнюю дату?
Это о-о-че-е-нь сложный вопрос.
А поиск по форуму , слабо попробовать?
И не сомневайся даже ... отдых - кайф, работа - лажа!
DeKot вне форума Ответить с цитированием
Старый 04.01.2010, 21:57   #5
s.Creator
Форумчанин
 
Регистрация: 28.09.2008
Сообщений: 344
По умолчанию

Жми F1 на Now() или Date()
s.Creator вне форума Ответить с цитированием
Старый 04.01.2010, 21:58   #6
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

now и... просто примерчик...
Код:
const c = 345;
var t,k: tdatetime;
begin

 t:= strtodatetime('06.01.2010');
 k:= strtodatetime('07.01.2010');
 caption:= format('%.0f',[k-t + c]);
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 04.01.2010, 21:58   #7
Marsel737
Форумчанин
 
Аватар для Marsel737
 
Регистрация: 09.11.2009
Сообщений: 669
По умолчанию

Ну я так поняимаю что туда нужно именно в виде 200, 02, 10, 0, ... дату запизнуть, а не просто DateToStr(Date), а на счёт поиска, я вот тут получше нашол Линк

raxp, что же вы так скромничаете, это не просто примерчик!! Это решение моей проблемы!! Спасибо вам
Я не всегда знаю, о чем говорю, но знаю, что прав. © Мухаммед Али.
К чёрту обстоятельства. Я создаю возможности. © Брюс Ли

Последний раз редактировалось mihali4; 04.01.2010 в 22:52.
Marsel737 вне форума Ответить с цитированием
Старый 04.01.2010, 22:58   #8
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Модуль DateUtils. Куча полезностей.
Например:
DayOfTheYear function
DayOfTheMonth function
DayOfTheWeek function

и так далее, до бесконечности...
mihali4 вне форума Ответить с цитированием
Старый 05.01.2010, 10:06   #9
s.Creator
Форумчанин
 
Регистрация: 28.09.2008
Сообщений: 344
По умолчанию

Цитата:
Сообщение от Marsel737 Посмотреть сообщение
Ну я так поняимаю что туда нужно именно в виде 200, 02, 10, 0, ... дату запизнуть, а не просто DateToStr(Date),
Не совсем понял куда запихнуть.
Now() - текущее время ( с датой и без параметров )
Date() - текущая дата ( без параметров ).
т.е.
Код:
toDate := Date();
s.Creator вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вычисление даты в зависимости от суммы sanantoni Microsoft Office Excel 2 17.09.2009 16:42
Подкачка данных в зависимости от даты Belokuraya Microsoft Office Excel 1 24.08.2009 20:19
Вычисленя в зависимости от даты Belokuraya Microsoft Office Excel 6 14.08.2009 16:04
подсчет ячеек в зависимости от даты Алексей777 Microsoft Office Excel 4 20.02.2009 13:48
Занесение данных в зависимости от даты gavrylyuk Microsoft Office Excel 2 31.07.2008 12:19