Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - VBA

Страница: 1 |

 

  Вопрос: Как найти разницу в минутах Добавлено: 08.05.07 16:30  

Автор вопроса:  Andrew_nik
Есть два столбца с временем:
9:10 и 10:50 - надо найти разницу в минутах.

Подскажите какая функция может помочь в вычислении разницы! т.е. чтобы она возвращала значение 100 минут

Ответить

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

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



Вопросов: 0
Ответов: 1876


 Профиль | | #1 Добавлено: 08.05.07 16:34
datediff

Ответить

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



Вопросов: 15
Ответов: 30
 Профиль | | #2 Добавлено: 08.05.07 17:02
Написал следующее.
Возвращает значение 0:00:00 вместо 100 минут.
Что можно сделать?

Public Sub Минуты()
Dim d As Date
Dim d1 As Date
Dim d2 As Date

d1 = #9:30:00 AM#
d2 = #9:30:00 AM#

d = DateDiff("m", d1, d2)
MsgBox d

End Sub

Ответить

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



Вопросов: 0
Ответов: 1876


 Профиль | | #3 Добавлено: 08.05.07 17:16
Что можно сделать?

Прочитать справку по datediff, обратив внимание на два пунта: тип возвращаемого значения и смысл буквы "m".

Ответить

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



Вопросов: 0
Ответов: 1876


 Профиль | | #4 Добавлено: 08.05.07 17:18
(не заметил)

Впрочем, всё это не поможет в поиске количества минут между одинаковыми датами.

Ответить

Номер ответа: 5
Автор ответа:
 Andrew_nik



Вопросов: 15
Ответов: 30
 Профиль | | #5 Добавлено: 08.05.07 17:24
Вышла промашка с данными.
Прочитал справку - выбрал аргумент "n" - результат 09.04.1900. А мне надо 100 минут.
Буду благодарен за совет.

Public Sub Минуты()
Dim d As Date
Dim d1 As Date
Dim d2 As Date

d1 = #9:10:00 AM#
d2 = #10:50:00 AM#

d = DateDiff("n", d1, d2)
MsgBox d

End Sub

Ответить

Номер ответа: 6
Автор ответа:
 GSerg



Вопросов: 0
Ответов: 1876


 Профиль | | #6 Добавлено: 08.05.07 17:47
Ты пропустил первую часть того ответа.
... обратив внимание на два пунта: тип возвращаемого значения...

Ответить

Номер ответа: 7
Автор ответа:
 Andrew_nik



Вопросов: 15
Ответов: 30
 Профиль | | #7 Добавлено: 08.05.07 17:57
Не подскажешь как тип данных Variant перевести в Date?

Ответить

Номер ответа: 8
Автор ответа:
 Pavel



Вопросов: 0
Ответов: 82
 Профиль | | #8 Добавлено: 08.05.07 18:04
может CDate() ?

Ответить

Номер ответа: 9
Автор ответа:
 GSerg



Вопросов: 0
Ответов: 1876


 Профиль | | #9 Добавлено: 08.05.07 18:09
как тип данных Variant

А то, что там написано после Variant в скобках, гораздо важнее.

перевести в Date

Ты не понимаешь, что 100 минут не может быть датой? :roll:

может CDate() ?

Может CDate вызывается автоматически во всёх приведённых отрезках кода. Его результатом и является 09.04.1900 (а чего вы ожидали).

Ответить

Номер ответа: 10
Автор ответа:
 Andrew_nik



Вопросов: 15
Ответов: 30
 Профиль | | #10 Добавлено: 10.05.07 09:13
GSerg, ты хочешь сказать, что результата 100 минут я не получу никогда используя эту функцию?

Если все так безнадежно - то скажи хоть что можно сделать - дай подсказку!

Ответить

Номер ответа: 11
Автор ответа:
 GSerg



Вопросов: 0
Ответов: 1876


 Профиль | | #11 Добавлено: 10.05.07 09:35
Andrew_nik, применять моск полезно.
Не применять моск, соответственно, наоборот.

Дата (тип date) - точка. Одна точка. На шкале времени. Я это сказал выше (но ты не послушал).
Отрезок (тип отсутствует!) - отрезок. Две точки, причём любые. Важно только расстояние между ними. Про причине чего типом Date это непредставимо (об этом я тоже сказал, но ты снова решил не понять).

100 - это число (а не дата). Чего именно "сто", знаешь только ты. Для компа это просто 100.

Ты так и сходил в мануал второй раз и так и не прочитал, что после Variant в скобках идёт (Long).
Соответственно, это не сподвигло тебя мысль о том, что тип возвращаемого значения - Long (потому что, наверное, мысли о Date занимали всё процессорное время, и сбить себя с этого пути ты не давал).

Ну нет слов, собственно.
Ну на.

Public Sub Минуты()
Dim d As Long
Dim d1 As Date
Dim d2 As Date

d1 = #9:10:00 AM#
d2 = #10:50:00 AM#

d = DateDiff("n", d1, d2)
MsgBox d

End Sub


Рассмотри всё-таки вариант включения моска в ближайшем будущем.

Ответить

Страница: 1 |

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



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