ОБСУЖДЕНИЕ

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

2 ответов 10,2 тыс.
AI-выжимка обсуждения скоро

Краткие тезисы обсуждения со ссылками на ключевые ответы появятся здесь.

Статус
Закрыто для дальнейших ответов.
Автор темы
Здравствуйте!
Как VBA можно получить номер дня в году? Допустим сегодня 20.06.2007, а функция или процедура должна возвратить 170. Мне предложили перевести дату в текстовый формат и вычитать из нее 1 января 2007 года так же в текстовом формате. Получится нужное число, но это будет работать только в этом году, а мне нужно обрабатывать массив данных за много лет. Как можно получить номер дня в году проще?
Заранее спасибо, с уважением ко всем Владимир.
 
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 - определяет год по указанной дате
 
Большое спасибо, Tanya! Вы мне очень помогли.
С уважением Владимир.
 
Статус
Закрыто для дальнейших ответов.