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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 12.03.2016, 17:54   #21
newerow1989
Я самый любопытный
Участник клуба
 
Аватар для newerow1989
 
Регистрация: 24.07.2012
Сообщений: 1,949
По умолчанию

Цитата:
3 месяца 31 день
Вряд ли.


А если по порядку пересчитать?

07.11.2016 - 28.02.2017 - 3 мес. 21 дн.
07.11.2016 - 01.03.2017 - 3 мес. 22 дн.
07.11.2016 - 02.03.2017 - 3 мес. 23 дн.
...
07.11.2016 - 06.03.2017 - 3 мес. 27 дн.
С запрограммированным приветом, Неверов Евгений!
Сайт: http://newerow1989.ru
[Паскаль] [Delphi]
newerow1989 вне форума Ответить с цитированием
Старый 12.03.2016, 18:00   #22
Dux
Delphi Master
Форумчанин Подтвердите свой е-майл
 
Аватар для Dux
 
Регистрация: 31.03.2008
Сообщений: 803
По умолчанию

Даты: 07.11.2016 - 06.03.2017

Ноябрь - 24 дня
Декабрь - полный месяц
Январь - полный месяц
Февраль - полный месяц
Март - 6 дней

Итого: 3 мес 30 дней (пардон, не 31)

Или я что-то неправильно считаю?
Dux вне форума Ответить с цитированием
Старый 12.03.2016, 18:03   #23
newerow1989
Я самый любопытный
Участник клуба
 
Аватар для newerow1989
 
Регистрация: 24.07.2012
Сообщений: 1,949
По умолчанию

Сколько дней будет между
07.11.2016 - 28.02.2017
07.11.2016 - 01.03.2017
?
С запрограммированным приветом, Неверов Евгений!
Сайт: http://newerow1989.ru
[Паскаль] [Delphi]
newerow1989 вне форума Ответить с цитированием
Старый 12.03.2016, 18:10   #24
Dux
Delphi Master
Форумчанин Подтвердите свой е-майл
 
Аватар для Dux
 
Регистрация: 31.03.2008
Сообщений: 803
По умолчанию

Цитата:
Сообщение от newerow1989 Посмотреть сообщение
Сколько дней будет между
07.11.2016 - 28.02.2017
07.11.2016 - 01.03.2017
?
если считать по календарю

3 мес 24 дня
3 мес 25 дней

а к чему это Вы?
Dux вне форума Ответить с цитированием
Старый 12.03.2016, 18:12   #25
newerow1989
Я самый любопытный
Участник клуба
 
Аватар для newerow1989
 
Регистрация: 24.07.2012
Сообщений: 1,949
По умолчанию

А как получилось 24 дня, если
Цитата:
07.11.2016 - 28.02.2017
28 - 07 = 21

Попробуйте по порядку пересчитать сначала:
07.11.2016 - 07.02.2017 - 3 мес. 0 дн.
07.11.2016 - 08.02.2017 - 3 мес. 1 дн.
...
С запрограммированным приветом, Неверов Евгений!
Сайт: http://newerow1989.ru
[Паскаль] [Delphi]
newerow1989 вне форума Ответить с цитированием
Старый 12.03.2016, 18:14   #26
Dux
Delphi Master
Форумчанин Подтвердите свой е-майл
 
Аватар для Dux
 
Регистрация: 31.03.2008
Сообщений: 803
По умолчанию

Цитата:
Сообщение от newerow1989 Посмотреть сообщение
А как получилось 24 дня, если

28 - 07 = 21
Мы немного по разному считаем. Даже не знаю как будет правильно. Я полный месяц просто приравнивал к 1 (кол-во дней в нем не считал). А дни считал из неполных месяцев 24 в ноябре. Т.е. 3 мес 24 дня.
Dux вне форума Ответить с цитированием
Старый 12.03.2016, 18:17   #27
newerow1989
Я самый любопытный
Участник клуба
 
Аватар для newerow1989
 
Регистрация: 24.07.2012
Сообщений: 1,949
По умолчанию

Тут нужно мнение других форумчан на этом форуме...
С запрограммированным приветом, Неверов Евгений!
Сайт: http://newerow1989.ru
[Паскаль] [Delphi]
newerow1989 вне форума Ответить с цитированием
Старый 12.03.2016, 18:19   #28
Dux
Delphi Master
Форумчанин Подтвердите свой е-майл
 
Аватар для Dux
 
Регистрация: 31.03.2008
Сообщений: 803
По умолчанию

Цитата:
Сообщение от newerow1989 Посмотреть сообщение
Тут нужно мнение других форумчан на этом форуме...
Я больше склоняюсь к тому, что Ваше решение верное! Просто если есть подобные алгоритмы, интересно было бы увидеть их результаты.
Dux вне форума Ответить с цитированием
Старый 12.03.2016, 18:22   #29
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Код:
  d1:=EncodeDate(2016,11,7);
  d2:=EncodeDate(2017,3,6);
  Edit1.Text:=Format('между датами %dмес %dдн',[MonthsBetween(d2,d1),DaysBetween(IncMonth(d2,-MonthsBetween(d2,d1)),d1)]);
между датами 3мес 29дн
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 12.03.2016, 19:05   #30
Dux
Delphi Master
Форумчанин Подтвердите свой е-майл
 
Аватар для Dux
 
Регистрация: 31.03.2008
Сообщений: 803
Хорошо

Цитата:
Сообщение от Аватар Посмотреть сообщение
Код:
  d1:=EncodeDate(2016,11,7);
  d2:=EncodeDate(2017,3,6);
  Edit1.Text:=Format('между датами %dмес %dдн',[MonthsBetween(d2,d1),DaysBetween(IncMonth(d2,-MonthsBetween(d2,d1)),d1)]);
между датами 3мес 29дн
Ну Вы даете, Аватар!

Код в одну строчку и отлично работает, тестирую с разными датами, пока багов не нашел
Dux вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Количество дней между датами (Delphi) TyTan Помощь студентам 14 15.12.2022 11:36
Как в MS Excel рассчитать количество полных месяцев между двумя датами? moonlightchild Microsoft Office Excel 2 28.12.2012 13:20
Даны a1,b1,c1, и a2,b2,c2 которые обозначают две даты. Нужно вычислить кол-во дней между этими датами Рафиль Паскаль, Turbo Pascal, PascalABC.NET 6 21.10.2011 10:34
С++: найти число дней между 2 датами kissel Помощь студентам 2 15.03.2009 17:18