powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / расчёт дней обычный/високосный
6 сообщений из 6, страница 1 из 1
расчёт дней обычный/високосный
    #35756598
PlanB
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Помогите, пожалуйста!
Уже мозги плавятся.
Есть формула:
Код: plaintext
1.
'а = (дата платежа - дата поставки)* '(архив договоров) %текущий / 366
a = (Лист4.Cells( 2 ,  1 ) - Лист4.Cells( 6 ,  1 )) * Лист5.Cells(iDog,  9 ) /  366 

Требуют, чтобы было деление не на 366 или 365, а кусочек от 365 и кусочек от 366, при условии того, что "дата платежа" была в 2008, а "дата поставки" - в 2009 году.

Спасибо огромное, добрые люди!
...
Рейтинг: 0 / 0
расчёт дней обычный/високосный
    #35756600
PlanB
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
нужно как бы автоматом определять високосный год или нет... в этом, собственно, и вопрос...
...
Рейтинг: 0 / 0
расчёт дней обычный/високосный
    #35756605
Фотография Restavraciya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
расчёт дней обычный/високосный
    #35756620
Фотография Restavraciya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что первое пришло на ум (возможно там оно тоже есть)
от даты 31/12/год отнять 364 дней и проверить полученную дату - если получится 02/01/год то это високосный, если 01/01/год - невисокосный
или как то так
Отнимать datediff-ом, если он есть в ексельном vba, или просто дата-364 (должно сработать)
...
Рейтинг: 0 / 0
расчёт дней обычный/високосный
    #35758552
PlanB
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_На поиск
Помогло вот это:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
Public Function DaysInYear(lngYear As Long) As Long
    If lngYear Mod  4  >  0  Then
       DaysInYear =  365 
    Else
       If lngYear Mod  100  >  0  Then
          DaysInYear =  366 
       Else
          If lngYear Mod  400  >  0  Then
             DaysInYear =  365 
          Else
             DaysInYear =  366 
          End If
       End If
    End If
End Function
Спасибо за помощь!
...
Рейтинг: 0 / 0
расчёт дней обычный/високосный
    #35763651
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
http://ru.wikipedia.org/wiki/Високосный_год
Код: plaintext
1.
2.
3.
4.
5.
6.
Public Function DaysInYear(lngYear As Long) As Long
    If ( lngYear Mod  4  =  0  And lngYear Mod  100  >  0  ) Or lngYear Mod  400  =  0  Then
       DaysInYear =  366 
    Else
       DaysInYear =  365 
    End If
End Function
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / расчёт дней обычный/високосный
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]