Срванить 2 даты

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

Срванить 2 даты

Сообщение Sirik » 04.11.2004 (Чт) 14:34

Как мне сравнить 2 даты?
Например: 11-04-2004 и 01-01-2005 (вот так: 11-04-2004 < 01-01-2005 )

Я пробовал простым сравнением - ничего не получается...

xolod
Гуру
Гуру
 
Сообщения: 1162
Зарегистрирован: 15.01.2004 (Чт) 0:42
Откуда: Moscow

Сообщение xolod » 04.11.2004 (Чт) 14:54

Код: Выделить всё
Private Sub CheckDate()
  If #11-04-2004# < #01-01-2005# Then
    MsgBox "Дата 2 больше Даты 1"
  Else
    MsgBox "Наоборот"
  End If
End Sub

Constant ERROR_SUCCESS deprecated. I'm so happy.
Программирование и дизайн – http://www.macrointellect.ru

Sirik
Perspicaz
Perspicaz
Аватара пользователя
 
Сообщения: 2280
Зарегистрирован: 19.02.2004 (Чт) 16:09
Откуда: Бердичев, Украина

Сообщение Sirik » 04.11.2004 (Чт) 14:59

xolod писал(а):
Код: Выделить всё
Private Sub CheckDate()
  If #11-04-2004# < #01-01-2005# Then
    MsgBox "Дата 2 больше Даты 1"
  Else
    MsgBox "Наоборот"
  End If
End Sub

Т.е. ты хочешь сказать что надо сравнивать не Date$ а Date? Маловероятно...

Tuco
Постоялец
Постоялец
 
Сообщения: 508
Зарегистрирован: 18.06.2003 (Ср) 16:37
Откуда: Подмосковье

Сообщение Tuco » 04.11.2004 (Чт) 15:08

2 Sirik:
а ты возьми, да и попробуй. У меня этот метод вполне работает... ;-)
"There's more than one way to do it!"

Sirik
Perspicaz
Perspicaz
Аватара пользователя
 
Сообщения: 2280
Зарегистрирован: 19.02.2004 (Чт) 16:09
Откуда: Бердичев, Украина

Сообщение Sirik » 04.11.2004 (Чт) 15:22

ok

Olga
Обычный пользователь
Обычный пользователь
 
Сообщения: 81
Зарегистрирован: 08.09.2004 (Ср) 8:49
Откуда: Москва

Сообщение Olga » 05.11.2004 (Пт) 13:30

Быстрее всего перевести дату в Double, а потом уже сравнивать два числа типа Double

Sedge
Alternative Choice
Alternative Choice
Аватара пользователя
 
Сообщения: 1049
Зарегистрирован: 16.05.2002 (Чт) 18:23
Откуда: Somewhere-In-The-Net

Сообщение Sedge » 05.11.2004 (Пт) 14:15

А про DateDiff все уже забыли?
Код: Выделить всё
If DateDiff("d", "12.09.2004", "12.08.2003") < 0 Then Debug.Print "12.08.2003 < 12.09.2004"

Sirik
Perspicaz
Perspicaz
Аватара пользователя
 
Сообщения: 2280
Зарегистрирован: 19.02.2004 (Чт) 16:09
Откуда: Бердичев, Украина

Сообщение Sirik » 05.11.2004 (Пт) 14:18

Sedge писал(а):А про DateDiff все уже забыли?
Код: Выделить всё
If DateDiff("d", "12.09.2004", "12.08.2003") < 0 Then Debug.Print "12.08.2003 < 12.09.2004"


Что означает первый параметр? (d)

Sedge
Alternative Choice
Alternative Choice
Аватара пользователя
 
Сообщения: 1049
Зарегистрирован: 16.05.2002 (Чт) 18:23
Откуда: Somewhere-In-The-Net

Сообщение Sedge » 05.11.2004 (Пт) 14:20

Что означает первый параметр? (d)

Что разница между датами вычисляется в днях.

Sirik
Perspicaz
Perspicaz
Аватара пользователя
 
Сообщения: 2280
Зарегистрирован: 19.02.2004 (Чт) 16:09
Откуда: Бердичев, Украина

Сообщение Sirik » 05.11.2004 (Пт) 14:22

2 Sedge
Твой вариант самый лучший.
Всем спасибо

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

Сообщение Andrey Fedorov » 05.11.2004 (Пт) 15:30

Не вы и извращаетесь:

1.
Какой вообще великий смысл в сравнении двух констант:

Код: Выделить всё
If #11-04-2004# < #01-01-2005# Then


Хотя оно и будет работать, но ведь это всегда True.

2.
Быстрее всего перевести дату в Double, а потом уже сравнивать два числа типа Double


А нафига? Неужто просто переменные типа даты сравнить нельзя?

--------------------------
Правильный ответ-то примитивен:

Просто сравнить две переменных типа даты:

Код: Выделить всё
If d1 > d2 Then


Или переменную с константой:

Код: Выделить всё
If d1 > #1/1/2004# Then


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

Sirik
Perspicaz
Perspicaz
Аватара пользователя
 
Сообщения: 2280
Зарегистрирован: 19.02.2004 (Чт) 16:09
Откуда: Бердичев, Украина

Сообщение Sirik » 05.11.2004 (Пт) 15:35

2 Andrey Fedorov
Насчёт последнего: ты не прав:
вот смотри MsgBox "11-11-2004" > "01-01-2005" позывает true, хотя это не так.
Так что вариант Sedge привильный

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

Сообщение Andrey Fedorov » 05.11.2004 (Пт) 16:04

Насчёт последнего: ты не прав:
вот смотри MsgBox "11-11-2004" > "01-01-2005" позывает true, хотя это не так.


Да потому что ты сравниваешь константы строкового типа.

Напиши так:

Код: Выделить всё
MsgBox #11-11-2004# > #01-01-2005#
Фиг Вам! - Сказал Чебурашка, обгладывая Крокодила Гену...

Ennor
Конструктивный критик
Конструктивный критик
 
Сообщения: 2504
Зарегистрирован: 18.12.2001 (Вт) 3:58
Откуда: Калуга -> Москва

Сообщение Ennor » 05.11.2004 (Пт) 18:46

Andrey Fedorov писал(а):...
Напиши так:
Код: Выделить всё
MsgBox #11-11-2004# > #01-01-2005#

Или так:
Код: Выделить всё
MsgBox CDate("11-11-2004") > CDate("01-01-2005")


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

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

Сейчас этот форум просматривают: Yandex-бот и гости: 3

    TopList  
cron