Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 14.01.2011, 19:52
DOR DOR вне форума
Начинающий
 
Регистрация: 14.01.2011
Сообщения: 171
Версия Delphi: 7
Репутация: 10
По умолчанию Сравнение двух дат

Есть форма через которую я заношу инфу в базу (Access) , на ней есть два DBDateEdit (записывают в базу «datamodule2.ADOTable_KlientDSDesigner7; datamodule2.ADOTable_KlientDSDesigner19;»). Подскажите пжл, как сравнить эти две даты и записать дату наибольшей в datamodule2.ADOTable_KlientDSDesigner20, в виде месяц год.
Ответить с цитированием
  #2  
Старый 14.01.2011, 20:53
Аватар для ALexandr555
ALexandr555 ALexandr555 вне форума
Специалист
 
Регистрация: 09.10.2010
Адрес: Тольятти
Сообщения: 803
Версия Delphi: Delphi 7
Репутация: 2064
По умолчанию

может поможет DaysBetween(дата1,дата2); дает разницу дней как дата2-дата1=разница ну и стравниваешь там если разница > 0 значит больше та дата

Последний раз редактировалось ALexandr555, 14.01.2011 в 20:56.
Ответить с цитированием
  #3  
Старый 15.01.2011, 00:40
DOR DOR вне форума
Начинающий
 
Регистрация: 14.01.2011
Сообщения: 171
Версия Delphi: 7
Репутация: 10
По умолчанию

Код:
function DaysBetween(Date1, Date2: TDateTime): Longint;

procedure TForm_Record.Button1Click(Sender: TObject);
var a:TDateTime;
begin
  a:=DaysBetween(form_record.DBDateEdit2,form_record.DBDateEdit3);
  form_record.Caption:=datetostr(a);
end;

function TForm_Record.DaysBetween(Date1, Date2: TDateTime): Longint;
begin
  DaysBetween:=Date1-Date2;
end;
Поправьте пжл.
Ответить с цитированием
  #4  
Старый 15.01.2011, 02:37
Аватар для Aristarh Dark
Aristarh Dark Aristarh Dark вне форума
Модератор
 
Регистрация: 07.10.2005
Адрес: Москва
Сообщения: 2,907
Версия Delphi: Delphi XE
Репутация: выкл
По умолчанию

Не читай того что выше - там ошибка.
Что подразумеваешь под фразой "в виде месяц год"?
__________________
Некоторые программисты настолько ленивы, что сразу пишут рабочий код.

Если вас наказали ни за что - радуйтесь: вы ни в чем не виноваты.
Ответить с цитированием
  #5  
Старый 15.01.2011, 03:31
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,096
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Код:
if datamodule2.ADOTable_KlientDSDesigner7.AsDateTime > 
   datamodule2.ADOTable_KlientDSDesigner19.AsDateTime
Then
  datamodule2.ADOTable_KlientDSDesigner20.AsDateTime := datamodule2.ADOTable_KlientDSDesigner7.AsDatetime
Else 
  datamodule2.ADOTable_KlientDSDesigner20.AsDateTime := datamodule2.ADOTable_KlientDSDesigner19.AsDateTime;

Годится?
Ответить с цитированием
  #6  
Старый 15.01.2011, 10:05
Аватар для Thrasher
Thrasher Thrasher вне форума
Illuminati
 
Регистрация: 06.03.2008
Адрес: Крым, г. Симферополь
Сообщения: 348
Репутация: 8808
По умолчанию

Думаю тебе помогут такие функции

CompareDate: Сравнивает два значения дат типа TDateTime, игнорируя время
CompareDateTime: Сравнивает два значения даты и времени типа TDateTime
DecodeDate: разбивает дату Date на год - Year, месяц - Month и день - Day

более детально в гугле про модуль DateUtils
__________________
Хорошо написанная программа не требует документации
ICQ 9-184-668.
Ответить с цитированием
  #7  
Старый 15.01.2011, 10:54
DOR DOR вне форума
Начинающий
 
Регистрация: 14.01.2011
Сообщения: 171
Версия Delphi: 7
Репутация: 10
По умолчанию

Цитата:
Сообщение от lmikle
Годится?
Вот такая ошибку выдает. Код повесил на кнопку. Кнопка сохраняет все что было забито на форме в базу.
Вложения
Тип файла: rar Безымянный.rar (33.2 Кбайт, 8 просмотров)
Ответить с цитированием
  #8  
Старый 15.01.2011, 10:56
DOR DOR вне форума
Начинающий
 
Регистрация: 14.01.2011
Сообщения: 171
Версия Delphi: 7
Репутация: 10
По умолчанию

Цитата:
Сообщение от Aristarh Dark
Не читай того что выше - там ошибка.
Что подразумеваешь под фразой "в виде месяц год"?

я имею ввиду что итоговая запись сравнения должна быть записана в виде "январь 2011" а не "15.01.2011"
Ответить с цитированием
  #9  
Старый 15.01.2011, 10:57
DOR DOR вне форума
Начинающий
 
Регистрация: 14.01.2011
Сообщения: 171
Версия Delphi: 7
Репутация: 10
По умолчанию

Цитата:
Сообщение от Thrasher
Думаю тебе помогут такие функции

CompareDate: Сравнивает два значения дат типа TDateTime, игнорируя время
CompareDateTime: Сравнивает два значения даты и времени типа TDateTime
DecodeDate: разбивает дату Date на год - Year, месяц - Month и день - Day

более детально в гугле про модуль DateUtils

Мой опыт программирования одна неделя все что я знаю это только из учебников по делфи, поэтому и туплю над каждой строчкой. А проогу изготовить необходимо, дабы облегчить свои трудовые будни.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 03:09.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025