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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 29.05.2010, 10:29   #1
zallza
Пользователь
 
Регистрация: 09.02.2010
Сообщений: 11
По умолчанию Расчет даты (дата+цел.число)

Здраствуйте. Мой вопрос заключается в следубщем: есть у меня DatePicker и 2 Edit'a, в DatePicker устанавливаем дату, в 1-й Edit вводим целое число (как бы число дней, на которое должна увеличится дата), в 2-м Edit'е хочу получить результат. Как сделать ето? есть мож стандартные функции для работы с датой? Ибо контролировать выход количества дней в месяце за его предел не реально как мне кажится. Помоги пожалуйста, спасибо зарание!
zallza вне форума Ответить с цитированием
Старый 29.05.2010, 10:41   #2
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

посмотрите модуль DateUtils
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 29.05.2010, 11:42   #3
bitSoft
Programming...
Форумчанин
 
Аватар для bitSoft
 
Регистрация: 13.03.2010
Сообщений: 198
По умолчанию

Код:
Uses DateUtils;

.......

Edit2.Text := DateTimeToStr(IncDay(DateTimePicker.Date,StrToInt(Edit1.Text)));

.....
Probuval v Lazarus, Rabotaet, Delphi ne na meste..., tolika Lazarus,
Код:
With TProgrammersForum.Create do  AddNewTopic('Title','Content...');
bitSoft вне форума Ответить с цитированием
Старый 29.05.2010, 12:18   #4
zallza
Пользователь
 
Регистрация: 09.02.2010
Сообщений: 11
Радость

Спасибо огромное, все работает
zallza вне форума Ответить с цитированием
Старый 10.05.2011, 18:25   #5
alexandro704
Пользователь
 
Регистрация: 18.04.2011
Сообщений: 15
По умолчанию

Есть у меня DateTimePicker1, Edit1, Edit2.
в DatePicker устанавливаем дату, в 1-й Edit вводим целое число (как бы число дней, на которое должна увеличится дата), в 2-м Edit'е хочу получить результат, но если в этот интервал попадают такие даты как :
1 января ,8 марта , 9 мая
то нужно +1 день к результату.
Код:
Edit2.Text := DateTimeToStr(IncDay(DateTimePicker.Date,StrToInt(Edit1.Text)));
alexandro704 вне форума Ответить с цитированием
Старый 10.05.2011, 18:58   #6
Valio
Сливочное масло
Участник клуба
 
Аватар для Valio
 
Регистрация: 01.01.2011
Сообщений: 1,149
По умолчанию

Цитата:
Сообщение от alexandro704 Посмотреть сообщение
Есть у меня DateTimePicker1, Edit1, Edit2.
в DatePicker устанавливаем дату, в 1-й Edit вводим целое число (как бы число дней, на которое должна увеличится дата), в 2-м Edit'е хочу получить результат, но если в этот интервал попадают такие даты как :
1 января ,8 марта , 9 мая
то нужно +1 день к результату.
Код:
Edit2.Text := DateTimeToStr(IncDay(DateTimePicker.Date,StrToInt(Edit1.Text)));
И что же делать?
Сливочное масло Valio - компиляция как по маслу
Valio вне форума Ответить с цитированием
Старый 10.05.2011, 19:10   #7
alexandro704
Пользователь
 
Регистрация: 18.04.2011
Сообщений: 15
По умолчанию

Цитата:
Сообщение от Valio Посмотреть сообщение
И что же делать?
если в этот интервал попадают такие даты как :
1 января ,8 марта , 9 мая то нужно +1 день к результату.
Например:
Цитата:
01.03.2011р + 8 дней = 09.03.2011р. (а не 08.03.2011р)
alexandro704 вне форума Ответить с цитированием
Старый 12.05.2011, 23:07   #8
alexandro704
Пользователь
 
Регистрация: 18.04.2011
Сообщений: 15
По умолчанию

Может есть у когото идеи как это сделать ?
alexandro704 вне форума Ответить с цитированием
Старый 13.05.2011, 13:23   #9
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,526
По умолчанию

Код:
dt:=Date;
nn:=8;
for j:=1 to nn do  begin
  dt:=dt+1; //IncDay(dt,1);
  decodeDate(dt, y, m, d);
  if (m=3) and (d=8) then dt:=dt+1;
  if (m=1) and (d=1) then dt:=dt+1;
  if (m=5) and (d=9) then dt:=dt+1;
// для проверок лучше будет организовать массив и процедуру(функцию)
// if specialday(m,d) then dt:=dt+1;
end;
программа — запись алгоритма на языке понятном транслятору

Последний раз редактировалось evg_m; 13.05.2011 в 13:25.
evg_m вне форума Ответить с цитированием
Ответ


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

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

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Цел.Матрица RamilFaz Общие вопросы C/C++ 0 21.05.2010 15:19
Расчет даты без учета выходных! Доктор Microsoft Office Excel 4 20.05.2010 17:56
Задание на типовой расчет: Какое наибольшее целое число без знака может быть записано в N двоич.разрядах? Бубликова Фриланс 10 06.12.2008 10:35
Как из Даты взять первое число? valerij Microsoft Office Excel 15 17.06.2008 13:39
Преобразование даты в вещественное число nova-alex Общие вопросы Delphi 5 03.05.2007 10:51