Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/21: Рейтинг темы: голосов - 21, средняя оценка - 4.67
4 / 4 / 1
Регистрация: 06.03.2013
Сообщений: 187
1

Вычисление количества дней между датами

21.11.2016, 23:58. Показов 4215. Ответов 9
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день суть проблемы такова, есть 3 поля едит в первом окне стоит реальная дата например 21.11.2016
во втором поле другая дата например 20.12.2016, в третьем поле должна стоять разница дней между данными датами, вот как это вычисление дней сделать?
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
21.11.2016, 23:58
Ответы с готовыми решениями:

Определение количества дней между двумя датами!
Здравствуйте! помогите написать программу определяющую количество дней между двумя датами! Но с...

Рассчитывание количества дней, часов, минут между двумя введенными датами
Здравствуйте уважаемые программисты!!! Не очень понимаю программирование. Очень нужна ваша...

Как вычислить кол-во дней между двумя датами и перевести в кол-во лет, мес. дней?
Собственно, как вычислить кол-во дней я знаю: procedure TForm1.Button3Click(Sender: TObject); var...

Количество дней между датами
Здравствуйте. Есть две даты в ячейках StringGrid , введенные с помощью MonthCalendar1.Date. Как...

9
139 / 137 / 66
Регистрация: 15.05.2012
Сообщений: 515
22.11.2016, 00:35 2
DaysBetween
0
4 / 4 / 1
Регистрация: 06.03.2013
Сообщений: 187
22.11.2016, 21:28  [ТС] 3
решил таким вариантом
Delphi
1
2
3
4
5
6
7
8
9
procedure TForm1.Button4Click(Sender: TObject);
var
k, n: TDateTime;
begin
n:=StrToDateTime(Edit2.Text);
k:=StrToDateTime(Edit3.Text);
ShowMessage('Целых дней = '+
IntToStr(DaysBetween(k, n))+' дней');
end;
Добавлено через 20 часов 8 минут
Есть вопрос как понять какая дата из какой вычитается? если ввожу в Edit2 24.11.2016, а в Edit3 22.10.2016 то выдает два дня, а если Edit2 20.11.2016, а в Edit3 22.10.2016 то так же выдает 2 дня, как сделать так что бы функция вычитала одно из другого, что бы получалось 20 а если первая дата меньше второй выдавало значение -2дня или писало просто 0
0
5567 / 4418 / 1079
Регистрация: 29.08.2013
Сообщений: 27,651
Записей в блоге: 3
22.11.2016, 21:47 4
а вы описание к функции совсем не читаете?
function DaysBetween ( const ToDate, FromDate : TDateTime ) : Integer;
Функция DaysBetween вычитает FromDate из ToDate, возвращая разность в целых днях.

тут даже с примером
http://www.delphibasics.ru/DaysBetween.php

А еще там написано что время не может быть 00:00:00
а я почему то уверен что у вас в эдитах только дата и делая StrToDateTime() вы получаете как раз нули
0
4 / 4 / 1
Регистрация: 06.03.2013
Сообщений: 187
22.11.2016, 21:59  [ТС] 5
в даном коде что вы представили измерение идет по часам, а у меня указывается только дата
0
5567 / 4418 / 1079
Регистрация: 29.08.2013
Сообщений: 27,651
Записей в блоге: 3
22.11.2016, 22:01 6
ну так добавьте по 1 минуте
0
4 / 4 / 1
Регистрация: 06.03.2013
Сообщений: 187
22.11.2016, 22:01  [ТС] 7
и у них та же проблема что и у меня если одна дата больше или меньше второй значения -2 дня или 0 нет всегда пишет только положительный результат
0
5567 / 4418 / 1079
Регистрация: 29.08.2013
Сообщений: 27,651
Записей в блоге: 3
23.11.2016, 09:14 8
не верю
все всегда пользовались, а у вас не получается

тут либо руки, либо руки
показывайте код
0
53 / 53 / 5
Регистрация: 22.11.2016
Сообщений: 268
23.11.2016, 09:59 9
Лучший ответ Сообщение было отмечено matrixkot как решение

Решение

Delphi
1
2
3
4
5
6
7
8
procedure TForm1.Button1Click(Sender: TObject);
var
D1,D2:Extended;
begin
D1:=StrToDateTime(Edit2.Text);
D2:=StrToDateTime(Edit3.Text);
Edit1.Text:=IntToStr(Round(D1-D2));
end;
Работает, как АК-47 во всех версиях Delphi и со всеми руками. Видимо у ТС и экспертов разные версии IDE.

DateTime - это по представлению вещественная величина.
Целая часть - количество дней от 12/30/1899
Дробная соответственно 1/24 для часов и далее /60 и /60
0
4 / 4 / 1
Регистрация: 06.03.2013
Сообщений: 187
23.11.2016, 12:26  [ТС] 10
Teodor7 спасибо за помощь IntToStr(Round(D1-D2)) я использовал IntToStr(DaysBetween(k, n) из-за этого и нек получалось что нужно
0
23.11.2016, 12:26
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
23.11.2016, 12:26
Помогаю со студенческими работами здесь

Количество дней между 2-мя датами
Помогите найти количество дней меджу двумя датами, если например даты вводяться в 2 поля Edit1 и...

Количество дней между датами
Здравствуйте! Подскажите пожалуйста как лучше написать программу рассчет колличества дней между...

Вычислить количество дней между двумя датами
Вычислить количество дней между двумя датами. Начальные и конечные значения дат задавать с помощью...

Как найти сколько дней между датами
К примеру я знаю 2 даты: 31.02.04 и 24.05.12 Как мне найти сколько дней между этими датами.


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru