Форум программистов, компьютерный форум, киберфорум
Delphi: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/42: Рейтинг темы: голосов - 42, средняя оценка - 5.00
1 / 1 / 0
Регистрация: 29.03.2010
Сообщений: 16

К полю даты прибавить несколько дней

29.03.2010, 15:11. Показов 8251. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте. Пишу курсовую работу на Delphi и access. Преподавателей в нашей провинции нормальных нет. Языки программирования на самом примитивном уровне изучались. Не смейтесь пожалуйста над кодом)))

В поле таблицы заносится текущая дата(это получилось).
Далее нужно взять эту дату, прибавить допустим 1-2 дня и получившуюся дату вписать в другое поле таблицы. Процедура выполняется при нажатии на кнопку.
вот код

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
procedure TForm1.Button2Click(Sender: TObject);
           var
           t, dt, d: string;
begin
           with form1.ADOQuery2 do
           begin
           Active:=false; 
           SQL.Clear;   
           SQL.Add('INSERT INTO [Rezervs] ([Nomer_bileta], [FIO], [ISBN], [Author_b], [Name_b], [Take_b]) VALUES (:Nomer, :FIO, :ISBN, :Author, :Name, :Take_b);');
           Parameters.ParamByName('Nomer').Value:=form1.Edit1.Text;
           Parameters.ParamByName('FIO').Value:=form1.Edit2.Text;
           Parameters.ParamByName('ISBN').Value:=form1.DBText1.Caption;
           Parameters.ParamByName('Author').Value:=form1.DBText2.Caption;
           Parameters.ParamByName('Name').Value:=form1.DBText3.Caption;
           Parameters.ParamByName('Take_b').Value:=DateToStr(Date); //заносим текущую дату в поле
           ExecSQL;
           SQL.Text := 'select * from [Rezervs]';
           Open;
           end;
           t:=form1.DBtext4.Caption; //присваиваем переменной значение поля [B]Take_b[/B], то есть занесенную текущую дату.
           d:='1'; //количество дней которые надо прибавить
           dt:=t+d; // после такого дата получается 29.03.20101
           DBGrid1.DataSource.DataSet.Edit;
           DBGrid1.DataSource.DataSet.FieldByName('Return_b').Value :=StrToDate(dt); //записываем в поле [B]Return_b[/B] получившуюся дату.
           DBGrid1.DataSource.DataSet.Post;
end;
Собственно проблема только в прибавлении дней к дате. Нужно разбить дату по значениям, прибавить дни и опять собрать воедино. Подскажите как это сделать?

Программа естественно будет не корректна, так как нельзя просто к значению 31 прибавить 1 и получить дату. Но хотя бы так сделать. Если поможете и корректно сделать, цены вам не будет!

Заранее спасибо! )))))
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
29.03.2010, 15:11
Ответы с готовыми решениями:

Из одной даты вычесть другую и прибавить несколько дней
Всем доброго времени суток! И снова у меня вопрос: Есть такая интересная задача которую я не знаю как реализовать, смысл её...

Прибавить к дате несколько дней
Помогите с задачей. Вычисление даты через заданное количество дней. Есть какой нибудь метод? Искал, не чего не нашел.

Прибавить к дате несколько дней
В использовании макросов новичок, так что прошу любой помощи. Создаю в ворде форму для заполнения документа. Использую Закладки для...

3
1866 / 1186 / 192
Регистрация: 27.03.2009
Сообщений: 4,603
29.03.2010, 16:04
IncDay function Returns a date shifted by a specified number of days.

пример
Delphi
1
2
3
4
5
6
7
8
9
procedure TForm1.FormActivate(Sender: TObject);
begin
edit3.Text:=datetostr(now());
end;
 
procedure TForm1.Button1Click(Sender: TObject);
begin
edit2.Text:=formatdatetime('dd.mm.yyyy',incday(strtodate(edit3.Text),strtoint(edit1.Text)));
end;
на сегодня получается
edit3=29.03.2010
edit1=6
edit2=04.04.2010
2
1 / 1 / 0
Регистрация: 29.03.2010
Сообщений: 16
30.03.2010, 00:10  [ТС]
Большущее СПАСИБО!!

Добавлено через 7 часов 44 минуты
реально ли к этому прикрутить проверку полей? чтобы свою ошибку выдавать если какие то поля не заполнены

Delphi
1
2
3
4
5
6
7
8
9
10
11
           Parameters.ParamByName('Nomer').Value:=form5.Edit1.Text;
           Parameters.ParamByName('FIO').Value:=form5.Edit2.Text;
           Parameters.ParamByName('ISBN').Value:=form1.DBText1.Caption;
           Parameters.ParamByName('Author').Value:=form1.DBText2.Caption;
           Parameters.ParamByName('Name').Value:=form1.DBText3.Caption;
           Parameters.ParamByName('Take_b').Value:=datetostr(now());
           t:=datetostr(now());
           d:=5;
           dt:=formatdatetime('dd.mm.yyyy',incday(strtodate(t),d));
           Parameters.ParamByName('Return_b').Value:=dt;
           ExecSQL;
0
 Аватар для recursija
20 / 4 / 1
Регистрация: 10.04.2010
Сообщений: 54
23.02.2014, 13:38
Для технологии ADO :
Pascal
1
2
3
ADOTable4.Edit;
ADOTable4.FieldByName('raschet').AsDateTime:=IncMonth(ADOTable4.FieldByName('data').AsDateTime,ADOTable3.FieldByName('norma').AsInteger);
ADOTable4.Post;
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
23.02.2014, 13:38
Помогаю со студенческими работами здесь

Как прибавить к дате несколько дней?
$CurrentDate = date("Y.m.d H:i:s"); $Days = ($withdraw_amo/300)*30;//вычисляем оплаченное количество дней //echo...

Надо прибавить к дате несколько дней
В одной таблице есть дата отъезда и дата возврата. А в другой длительность тура (поездки). Надо чтобы дата возврата заполнялась сама.

Как прибавить к текущей дате несколько дней
string dataNow = DateTime.Today.tostring(); string dateAfter = dateNow + ( 20 дней); Как правильно это проверить по календарю и...

За несколько дней до даты
Например введена дата 22.04.2014. а мне надо что бы начиная с 20.04.2014 появлялось как бы напоминание, что до срока осталось 2 дня, потом...

Получить даты файлов за несколько дней и вывести в лог (контроль даты файлов)
Добрый день нужен батник следующего функционала: есть папка с 8-ю зип архивами (ежесуточный бекап) нужен батник который будет...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а привычная функция main(). . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru