Преобразование Даты

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
KPEATOP
Бывалый
Бывалый
 
Сообщения: 291
Зарегистрирован: 02.12.2002 (Пн) 16:33
Откуда: Russia

Преобразование Даты

Сообщение KPEATOP » 27.06.2005 (Пн) 14:21

Подскажите как преобразовать дату в целое число (количество дней)
Я делал вот так, это правильно ?

Dim vr As Date
Dim vr2 As Long

vr2 = CLng(vr)

Я просто сомневаюсь, у меня получается целое число. Это количество дней или нет ?
Вечность пахнет нефтью

Andrey Fedorov
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3287
Зарегистрирован: 21.05.2004 (Пт) 9:28
Откуда: Москва

Re: Преобразование Даты

Сообщение Andrey Fedorov » 27.06.2005 (Пн) 14:50

KPEATOP писал(а):Подскажите как преобразовать дату в целое число (количество дней)
Я делал вот так, это правильно ?

Dim vr As Date
Dim vr2 As Long

vr2 = CLng(vr)


Можно просто:

Код: Выделить всё
vr2 = vr


KPEATOP писал(а):Я просто сомневаюсь, у меня получается целое число. Это количество дней или нет ?


Количество дней с 30.12.1899
Фиг Вам! - Сказал Чебурашка, обгладывая Крокодила Гену...

uhm
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1597
Зарегистрирован: 02.12.2004 (Чт) 15:21

Сообщение uhm » 27.06.2005 (Пн) 14:57

С 31.12.1899, все-таки :lol:

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 27.06.2005 (Пн) 15:15

? format(cdate(0),"dd.mm.yyyy")
30.12.1899

:)
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

uhm
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1597
Зарегистрирован: 02.12.2004 (Чт) 15:21

Сообщение uhm » 27.06.2005 (Пн) 15:44

:scratch: ага...
Весело. В VBA то же самое. А в Экселе 1 - это "01.01.1900".

UPD: а, там даты хранятся по-другому. В VB могут быть отрицательные даты, а в Экселе нет.

ЗЫ А теперь кто мне объяснит логику, почему с 30.12? :o

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 27.06.2005 (Пн) 16:58

uhm писал(а)::scratch: ага...
Весело. В VBA то же самое. А в Экселе 1 - это "01.01.1900".

UPD: а, там даты хранятся по-другому. В VB могут быть отрицательные даты, а в Экселе нет.

ЗЫ А теперь кто мне объяснит логику, почему с 30.12? :o

Объяснение форматов даты: http://blogs.msdn.com/ericlippert/archi ... 53013.aspx

Всё из-за того, что в Лотусе (с которым д.б. быть совместим Эксель) 1900 год високосный. Для дат после 1.3.1900 форматы VBA и Экселя совпадают.

Там на самом деле ещё меньше логики для отрицательных дат: хранится не число дней до 30.12.1899, а нечто совершенно неописуемое.
Изображение

uhm
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1597
Зарегистрирован: 02.12.2004 (Чт) 15:21

Сообщение uhm » 27.06.2005 (Пн) 18:30

:lol:

Спасибо! Классная ссылка!

Alexander N. Samarin
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 397
Зарегистрирован: 05.03.2005 (Сб) 20:59
Откуда: Интернат 18 (СУНЦ МГУ), комната 214А, кровать посередине

Сообщение Alexander N. Samarin » 28.06.2005 (Вт) 18:38

:idea: А не легче писать так:
:arrow:
Код: Выделить всё
Public Type MyDate
    Years As Integer
    Monts As Integer
    Days As Integer
EndType
На это не смотрите! Это не подпись!!!!!!

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 28.06.2005 (Вт) 19:11

Не легче. Зачем дублировать то, что в языке уже есть?
Изображение


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 54

    TopList