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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 23.03.2009, 22:19   #11
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Модуль DateUtils как сказал Andrei и так есть
диалектически надо подходить:
у кого есть, а у кого и нет...
в Delphi5 (которой я пользуюсь) такого нет.

впрочем. Какая разница - есть - значит хорошо!

Я просто хотел проиллюстрировать что будет выводиться, для даты 29.02.2008 если добавить год — будет последнее число месяца, то бишь: 28.02.2009...
Serge_Bliznykov вне форума Ответить с цитированием
Старый 24.03.2009, 09:18   #12
Bigtyoma
Пользователь
 
Аватар для Bigtyoma
 
Регистрация: 02.07.2008
Сообщений: 68
По умолчанию

Подскажите мне как лучше мне написать
Цитата:
if DateTimePicker1.Date = Now then....
так? или как надо правильно? и вот что написать после then?
Bigtyoma вне форума Ответить с цитированием
Старый 24.03.2009, 09:41   #13
XuTpbIu
Злобстер
Форумчанин
 
Аватар для XuTpbIu
 
Регистрация: 19.03.2009
Сообщений: 134
По умолчанию

Код:
if DateTimePicker1.Date = Now then
 DateTimePicker1.Date := IncYear(Now);
Примерно так. Но это только если тебе допустим надо только 1 раз увеличить, а если каждый раз по нажатию кнопки то пропиши только вторую строку.
В самом верху проекта в блоке uses пропиши ещё 1 модуль DateUtils. Если используешь Delphi 7, а если у тебя Delphi5, то используй JEDI как советовал выше Serge_Bliznykov
От знаний ещё никто не умирал, но рисковать не стоит.
XuTpbIu вне форума Ответить с цитированием
Старый 24.03.2009, 10:38   #14
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Bigtyoma, внимание. Наступаете на грабельки!
поставьте данный код на кнопочку и понажимайте на неё:
Код:
procedure TForm1.Button1Click(Sender: TObject);
begin
  if DateTimePicker1.Date = Now then
    Application.MessageBox('Дата равна сегодняшней','info',MB_OK)
  else
    Application.MessageBox('Дата НЕ РАВНА сегодняшней','info',MB_OK)
end;
Всё время - дата не равна?! Догадываетесь почему?...
время мешает сравнивать даты..

А надо вот так:
Код:
procedure TForm1.Button1Click(Sender: TObject);
begin
  if Trunc(DateTimePicker1.Date) = Trunc(Now) then
    Application.MessageBox('Дата равна сегодняшней','info',MB_OK)
  else
    Application.MessageBox('Дата НЕ РАВНА сегодняшней','info',MB_OK)
end;
Serge_Bliznykov вне форума Ответить с цитированием
Старый 24.03.2009, 22:13   #15
Bigtyoma
Пользователь
 
Аватар для Bigtyoma
 
Регистрация: 02.07.2008
Сообщений: 68
По умолчанию

Ну а вот если я сделаю вот так:
Цитата:
if DaysBetween(Now,DateTimePicker1.Dat eTime) = 0 then...
Bigtyoma вне форума Ответить с цитированием
Старый 25.03.2009, 08:58   #16
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Bigtyoma, да, так, на мой взгляд, будет хорошо!
Serge_Bliznykov вне форума Ответить с цитированием
Старый 06.05.2011, 10:20   #17
Рудзфельд
Пользователь
 
Регистрация: 27.02.2010
Сообщений: 22
По умолчанию

Народ, как из текущей даты вывести только год (например из даты 6.05.2011 получить 2011)?
Пробовала использовать функции: =Year(Now()), но что-то совсем не то выводится. Это VBA, Access 2007.
Пользователь
Рудзфельд вне форума Ответить с цитированием
Старый 06.05.2011, 15:54   #18
FaTaL
Участник клуба
 
Аватар для FaTaL
 
Регистрация: 09.11.2007
Сообщений: 1,761
По умолчанию

Вот так например:
Код:
procedure TForm1.Button1Click(Sender: TObject);
begin
  ShortDateFormat := 'yyyy';
  ShowMessage (DateToStr(now));
end;
FaTaL вне форума Ответить с цитированием
Старый 06.05.2011, 21:22   #19
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

FaTaL, категорически не согласен!
Зачем менять формат даты, чтобы получить год?!

варианты.
1)
Код:
procedure TForm1.Button1Click(Sender: TObject);
var dt : TDatetime;
begin
  dt := now;
  Button1.Caption := FormatDateTime('yyyy', dt);

end;
2-й вариант.
использовать DecodeDate()
Цитата:
Код:
procedure DecodeDate(const DateTime: TDateTime; var Year: Word; var Month: Word; var Day: Word);
3-й вариант.
использовать вышеупомянутый DateUtils:
Код:
uses DateUtils;
...
var MyYear : word;
...
begin
   MyYear := YearOf(Now);
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Дан файл с различными датами.в дате число,месяц и год.Найти весеннюю дату. JiLiYa Паскаль, Turbo Pascal, PascalABC.NET 1 26.12.2008 15:20
Как прибавить привлекательности сделанной программе Arassir Свободное общение 5 09.11.2008 22:20
Как из TDBDateTimeEditEh получить отдельно день, месяц и год? HIC БД в Delphi 2 31.10.2008 17:24
Открытие Excel файла на текущей дате Million Microsoft Office Excel 2 04.09.2008 20:37
Открытие Excel файла на текущей дате Million Помощь студентам 1 04.09.2008 06:44