Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: Глючит функция DateDiff? Добавлено: 22.12.06 13:05  

Автор вопроса:  LifeFire | ICQ: 176396432 
Суть в том, что написал код, который через некоторое время выдает месседжбокс, а в текстбоксе отображается время, через скока это произойдет. Банальный пример из книжки, просто хотел протестить функцию DateDiff. Переменной dOstalos присваевается очень загадочное значение 01.01.1900
Код:

DefDate D
Dim dOstalos
Dim dKonechnaya
Dim dNow


Private Sub Timer1_Timer()
    dNow = Now
 
    dKonechnaya = DateAdd("n", 2, dNow)
dOstalos = DateDiff("n", dNow, dKonechnaya)

While dOstalos > 0
    Text1 = "Запуск процесса через " & dOstalos & " минут"
    dOstalos = DateDiff("n", dNow, dKonechnaya)
    
    DoEvents
Wend
MsgBox "Пуск!", vbExclamation, "Пуск"
End Sub


Региональные настройки проверял, ничего странного не нашел. И тем не менее функция отказывается работать. Может знает кто в чем дело?

Ответить

  Ответы Всего ответов: 4  

Номер ответа: 1
Автор ответа:
 Djon



Вопросов: 61
Ответов: 471
 Web-сайт: www.vk-book.ru
 Профиль | | #1
Добавлено: 22.12.06 13:24
Функция DateDiff
DateDiff(Interval,Date1,Date2,[FirstDayOfWeek],[FirstWeekOfYear])
Функция DateDiff используется для вычисления разности двух дат

Возвращаемое значение
Возвращает значение типа Variant(Long), указывающее число временных интервалов между двумя датами

Параметры
Функция содержит именованные аргументы
Interval
Обязательный аргумент типа String, указывающего тип добавляемого временного интервала:
yyyy
Год
q
Квартал
m
Месяц
y
День года
d
День месяца
w
День недели
ww
Неделя
h
Часы
n
Минуты
s
Секунды
Interval не чуствителен к регистру букв.Литерал должен быть заключен в кавычки. Для вычисления дней между двумя датами можно использовать значение интервала дня:"y" или "d"
Date1
Обязательный аргумент типа Variant(Date) или литерал даты - первая календарная дата при вычислении разности дат
Date2
Обязательный аргумент типа Variant(Date) или литерал даты - вторая календарная дата при вычислении разности дат
FirstDayOfWeek
Необязательный аргумент типа Long, определяющего день недели. Допускается использование констант:
vbUseSystem=0
Используется значение национальных системных установок
vbSunday=1
Воскресенье(по умолчанию)
vbMonday=2
Понедельник
vbTuesday=3
Вторник
vbWednesday=4
Среда
vbThursday=5
Четверг
vbFriday=6
Пятница
vbSaturday
Суббота
FirstWeekOfYear
Необязательный аргумент - числовая константа, указывающая, какой день недели считать первым:
vbUseSystem=0
Используется системная информация
vbFirstJan1=1
Неделя, содержащая 1 января
vbFirstFourDays=2
Первая неделя, содержащая как минимум 4 дня нового года
vbFirstFullWeek=3
Первая полная неделя года
Пример
' Вычисляем сколько дней осталось до 21 века
Dim Today as Date' сегодняшний день
Dim Millenium As Date' 1 день 21 века
Dim retval' возвращаемое значение
Today=Date ' узнаем текущую системную дату
Millenium="01.01.01"
retval=DateDiff("d",Today,Millenium)
Form1.Caption = CStr(retval) ' выводим в заголовке формы

Ответить

Номер ответа: 2
Автор ответа:
 LifeFire



ICQ: 176396432 

Вопросов: 22
Ответов: 150
 Профиль | | #2 Добавлено: 22.12.06 13:31
Действительно, маразм пробрал -))) Спасибо!

Ответить

Номер ответа: 3
Автор ответа:
 HACKER


 

Разработчик Offline Client

Вопросов: 236
Ответов: 8362
 Профиль | | #3 Добавлено: 22.12.06 18:52
сами вы маразм :)))

DefDate D
Dim dOstalos    [U]As Long[/U]
Dim dKonechnaya [U]As Date[/U]
Dim dNow        [U]As Date[/U]


Private Sub Timer1_Timer()
    dNow = Now
  
    dKonechnaya = DateAdd("n", 2, dNow)
    dOstalos = DateDiff("n", dNow, dKonechnaya)

    While dOstalos > 0
        Text1 = "Запуск процесса через " & dOstalos & " минут"
        dOstalos = DateDiff("n", dNow, dKonechnaya)
        DoEvents
    Wend
MsgBox "Пуск!", vbExclamation, "Пуск"
End Sub

Ответить

Номер ответа: 4
Автор ответа:
 HACKER


 

Разработчик Offline Client

Вопросов: 236
Ответов: 8362
 Профиль | | #4 Добавлено: 22.12.06 18:53
бла ну короче, типы переменных надо по нормальному объявлять, а не Variant оставлять...

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам