Nic70y, Интересный вариант! Длинный, но работает безупречно! По подсчёту лет - месяцев и дней. Но он не вычисляет дней недели этих дат. А по варианту Pelena вычисляется! Или применить формулу преобразования bmv98rus из сообщения № 17, несколько видоизменив, чтобы был день недели, а не сама дата:
Nic70y, Интересный вариант! Длинный, но работает безупречно! По подсчёту лет - месяцев и дней. Но он не вычисляет дней недели этих дат. А по варианту Pelena вычисляется! Или применить формулу преобразования bmv98rus из сообщения № 17, несколько видоизменив, чтобы был день недели, а не сама дата:
не люблю я эти длинные формулы... Особенно РАЗНДАТ мне не нравится, из-за глюков... А если так: [vba]
Код
Option Explicit 'функция вычисляет разность дат по григорианскому календарю 'в периоде, начиная с 1 января сотого года (01.01.0100) 'при это считаем, что между 01/01/2020 и 02/01/2020 прошло два дня; ДАТА1 меньше ДАТА2
Function РАЗНОСТЬ_ДАТ_1900(ДАТА1 As Date, ДАТА2 As Date) As String Dim Deys&, Monts&, Yars& Deys = 1 Do If Day(ДАТА2) = Day(ДАТА1) Then Exit Do End If ДАТА2 = ДАТА2 - 1 Deys = Deys + 1 Loop Do If Month(ДАТА2) = Month(ДАТА1) Then Exit Do End If ДАТА2 = DateAdd("m", -1, ДАТА2) Monts = Monts + 1 Loop Yars = DateDiff("YYYY", ДАТА1, ДАТА2) РАЗНОСТЬ_ДАТ_1900 = Yars & " лет " & Monts & " мес " & Deys & " Дней" End Function
[/vba]
не люблю я эти длинные формулы... Особенно РАЗНДАТ мне не нравится, из-за глюков... А если так: [vba]
Код
Option Explicit 'функция вычисляет разность дат по григорианскому календарю 'в периоде, начиная с 1 января сотого года (01.01.0100) 'при это считаем, что между 01/01/2020 и 02/01/2020 прошло два дня; ДАТА1 меньше ДАТА2
Function РАЗНОСТЬ_ДАТ_1900(ДАТА1 As Date, ДАТА2 As Date) As String Dim Deys&, Monts&, Yars& Deys = 1 Do If Day(ДАТА2) = Day(ДАТА1) Then Exit Do End If ДАТА2 = ДАТА2 - 1 Deys = Deys + 1 Loop Do If Month(ДАТА2) = Month(ДАТА1) Then Exit Do End If ДАТА2 = DateAdd("m", -1, ДАТА2) Monts = Monts + 1 Loop Yars = DateDiff("YYYY", ДАТА1, ДАТА2) РАЗНОСТЬ_ДАТ_1900 = Yars & " лет " & Monts & " мес " & Deys & " Дней" End Function
Я попробовал подставить вашу формулу, получается что-то непонятное = 709110.
решение Вашего примера в 10 строке. 709110 дата 22.06.3048 года. Где то читал что для правильного исчисления Григорианского календаря обязательно добавить 2000 дней.
Я попробовал подставить вашу формулу, получается что-то непонятное = 709110.
решение Вашего примера в 10 строке. 709110 дата 22.06.3048 года. Где то читал что для правильного исчисления Григорианского календаря обязательно добавить 2000 дней.alexa1965
Не дней, а лет и не 2000, а каждые 400 лет календарь полностью повторяется, день в день. Просто 2000 кратно 400 и не надо считать сколько прибавить: 400, 800, 1200, 1600 - прибавляем 2000. Юлианский календарь (старый стиль) повторяется каждые 28 лет.
Не дней, а лет и не 2000, а каждые 400 лет календарь полностью повторяется, день в день. Просто 2000 кратно 400 и не надо считать сколько прибавить: 400, 800, 1200, 1600 - прибавляем 2000. Юлианский календарь (старый стиль) повторяется каждые 28 лет. Michael_S
Michael_S, Это познавательно! В самом деле - 2000 ЛЕТ! А почему такая разница - Юлианский - 28, а Григорианский - аж 400!? А есть формула перевода Юлианского календаря в Григорианский? Там же не по всем годам +13!
Michael_S, Это познавательно! В самом деле - 2000 ЛЕТ! А почему такая разница - Юлианский - 28, а Григорианский - аж 400!? А есть формула перевода Юлианского календаря в Григорианский? Там же не по всем годам +13!Юрий_Ф
То, что мы делаем, завораживает! Кстати! Я не могу всем нравиться! И это взаимно!
Сообщение отредактировал Юрий_Ф - Воскресенье, 20.09.2020, 12:47
ну тогда уж начинать с основ астрономии, что такое день, год ...
А что, здесь был вопрос про астрономию? Зачем вы это делаете? Это ваше любимое развлечение - унизить того, кто что-то спрашивает? Мол, я, такой здесь спец, а ты и этого не знаешь! Помнится, ваша вариация была ещё по другому поводу кому-то ещё:
Цитата
...тогда надо ещё рассказать, что такое слово, предложение...
Приёмчики одни и те же. Да, у вас знания по Exel много выше, чем у тех, кто задаёт вопросы или что-то у них не получается. Но зачем этот ваш сарказм? Не хотите помочь - не пишите ничего! На сайт приходят, чтобы получить помощь, а не испорченное настроение! Вы ещё не замечаете: как только вы пишите что-то с сарказмом, сразу все уходят с данной ветки обсуждения! Никто не хочет получать отрицательные эмоции от вашего т.н. остроумия!
ну тогда уж начинать с основ астрономии, что такое день, год ...
А что, здесь был вопрос про астрономию? Зачем вы это делаете? Это ваше любимое развлечение - унизить того, кто что-то спрашивает? Мол, я, такой здесь спец, а ты и этого не знаешь! Помнится, ваша вариация была ещё по другому поводу кому-то ещё:
Цитата
...тогда надо ещё рассказать, что такое слово, предложение...
Приёмчики одни и те же. Да, у вас знания по Exel много выше, чем у тех, кто задаёт вопросы или что-то у них не получается. Но зачем этот ваш сарказм? Не хотите помочь - не пишите ничего! На сайт приходят, чтобы получить помощь, а не испорченное настроение! Вы ещё не замечаете: как только вы пишите что-то с сарказмом, сразу все уходят с данной ветки обсуждения! Никто не хочет получать отрицательные эмоции от вашего т.н. остроумия!Юрий_Ф
То, что мы делаем, завораживает! Кстати! Я не могу всем нравиться! И это взаимно!
Сообщение отредактировал Юрий_Ф - Понедельник, 21.09.2020, 01:07
Ответ на вопрос темы получен. Юрий_Ф, с претензиями - в личку, плз. Не надо замусоривать форум. Тему закрываю во избежание дальнейшего обмена любезностями.
Ответ на вопрос темы получен. Юрий_Ф, с претензиями - в личку, плз. Не надо замусоривать форум. Тему закрываю во избежание дальнейшего обмена любезностями.Pelena
"Черт возьми, Холмс! Но как??!!" Ю-money 41001765434816