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

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
R
Начинающий
Начинающий
 
Сообщения: 18
Зарегистрирован: 14.08.2007 (Вт) 6:31

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

Сообщение R » 22.08.2007 (Ср) 11:09

Имеются 2 даты формата : 21 08 2007 17:04:59 и 20 08 2007 16:50:50

Как между ними вычислить разницу в секундах ? Данные лежат в двумерном массиве. Год не обязательно совпадает... Причем еще надо учесть високосные и не високосные годы... :cry:

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 22.08.2007 (Ср) 11:14

Код: Выделить всё
Dim a as date
dim b as date
dim c as date
a = #27/11/2007#
b = #18/03/2008#

c = b - a
MsgBox c

MsgBox DateDiff("s", a,b) + " секунд пройдёт между наступлением 27 ноября 2007 года, и 18 марта 2008."


исчерпывающий пример, я считаю.
Последний раз редактировалось Хакер 22.08.2007 (Ср) 11:35, всего редактировалось 1 раз.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

R
Начинающий
Начинающий
 
Сообщения: 18
Зарегистрирован: 14.08.2007 (Вт) 6:31

Сообщение R » 22.08.2007 (Ср) 11:25

Sorry -не предупредил: я в для WSH ваяю скрипт. Кто нить знает как там это сделать ?

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 22.08.2007 (Ср) 11:28

На каком языке? VBScript? АФАИК также, тоде As Date поубирай.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 22.08.2007 (Ср) 11:33

В WSH есть функция DateDiff.
Можно также использовать (d1-d2)*(24*60*60).
Таинственную функцию Date(a1,a2,a3) я не знаю.
Lasciate ogni speranza, voi ch'entrate.

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 22.08.2007 (Ср) 11:36

fixed. Таинственная функция Date, которую ты не знаешь, на самом деле являлась DateDiff-ом.

Тороплюсь.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

R
Начинающий
Начинающий
 
Сообщения: 18
Зарегистрирован: 14.08.2007 (Вт) 6:31

Сообщение R » 22.08.2007 (Ср) 13:09

Спасибо - реально выручили!
Только что проверил - високсоность тоже учитывает.... А как если я хочу разницу в минутах ? ведь месяц тоже - M... :?

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 22.08.2007 (Ср) 13:11

Код: Выделить всё
yyyy   Year
q    Quarter
m      Month
y      Day of year
d       Day
w        Weekday
ww       Week
h        Hour
n        Minute
s          Second
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

R
Начинающий
Начинающий
 
Сообщения: 18
Зарегистрирован: 14.08.2007 (Вт) 6:31

Сообщение R » 22.08.2007 (Ср) 13:13

Common EvreBody - Черный брат !!! Ты ваще меня реально выручил!!!

Денис
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2734
Зарегистрирован: 07.11.2006 (Вт) 13:55
Откуда: Ейск, Краснодарский край

Сообщение Денис » 22.08.2007 (Ср) 15:32

Репер...

ADD: Все, кончаю флудить. Извините.
Последний раз редактировалось Денис 22.08.2007 (Ср) 19:47, всего редактировалось 1 раз.
Программирование — богоизбранная дисциплина! Если бог и есть, то вселенную он скомпилировал, не иначе.

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 22.08.2007 (Ср) 16:11

Денис
И всё таки ты кончай флудить.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

R
Начинающий
Начинающий
 
Сообщения: 18
Зарегистрирован: 14.08.2007 (Вт) 6:31

Сообщение R » 23.08.2007 (Чт) 5:26

Блудить

netdemon
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 179
Зарегистрирован: 04.09.2007 (Вт) 15:51

Сообщение netdemon » 08.09.2007 (Сб) 12:03

Public Function DateCalculate (dDate1 as Date, dDate2 as Date) as Date


Dim dRes as Date

If not IsDate(dDate1) or not IsDate(dDate2) Then
DateCalculate=0
Else
dRes=dDate2-dDate1
DateCalculate= format$(dRes,"ss")
End if

End Function


:roll:

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

Сообщение tyomitch » 08.09.2007 (Сб) 13:07

netdemon, вычитание дат неверно работает с датами разного знака (т.е. когда одна раньше 1900 г., а вторая позже)
Изображение

EUGY
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 214
Зарегистрирован: 09.11.2006 (Чт) 22:51
Откуда: Мурманск

Сообщение EUGY » 12.09.2007 (Ср) 17:43

Вычисление високосности года (может кому надо):
~
Function IsYeaLeep(yea As Integer) As Boolean
IsYeaLeep = (((yea Mod 4 = 0) And (yea Mod 100 <> 0)) Or (yea Mod 400 = 0))
End Function
~

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 13.09.2007 (Чт) 8:58

Тысячелетие не учитывается.
Lasciate ogni speranza, voi ch'entrate.


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

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

Сейчас этот форум просматривают: Majestic-12 [Bot] и гости: 13

    TopList