Как получить номер дня в году?

  • Автор темы wow@
  • Дата начала
Статус
Закрыто для дальнейших ответов.
W

wow@

Гость
#1
Здравствуйте!
Как VBA можно получить номер дня в году? Допустим сегодня 20.06.2007, а функция или процедура должна возвратить 170. Мне предложили перевести дату в текстовый формат и вычитать из нее 1 января 2007 года так же в текстовом формате. Получится нужное число, но это будет работать только в этом году, а мне нужно обрабатывать массив данных за много лет. Как можно получить номер дня в году проще?
Заранее спасибо, с уважением ко всем Владимир.
 
T

Tanya

Гость
#2
Sub nn()
Debug.Print DateDiff("d", "1.01.2007", "21.06.2007")
Debug.Print DateDiff("d", DateSerial(2007, 1, 1), DateSerial(2007, 6, 21))
Debug.Print DateDiff("d", DateSerial(Year(Date), 1, 1), Date)
End Sub

DateDiff - вычисляет промежуток времени между двумя датами
первый параметр - в чем возвращать результат, "d" - указывает, что в днях
2 следующих параметра - даты между которыми определяется промежуток

в результате выполнения будет распечатано:
171
171
171
при условии, что выполняли 21.06.2007 :)))

DateSerial - определяет дату по параметрам: год, месяц, число
Date - текущая дата
Year - определяет год по указанной дате
 
W

wow@

Гость
#3
Большое спасибо, Tanya! Вы мне очень помогли.
С уважением Владимир.
 
Статус
Закрыто для дальнейших ответов.