Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » VBA - По введенному времени определить количество часов до конца дня.

Ответить
Настройки темы
VBA - По введенному времени определить количество часов до конца дня.

Новый участник


Сообщения: 13
Благодарности: 0

Профиль | Отправить PM | Цитировать


По введенному времени определить количество часов до конца дня.

Отправлено: 22:24, 31-01-2011

 

Аватара для Delirium

Ветеран


Сообщения: 5624
Благодарности: 936

Профиль | Отправить PM | Цитировать


Дашка, я вроде бы уже предупреждал. Сначала на форуме предлагают свой вариант решения проблемы, и только потом мы разбираем, что не получилось.
Если не будет варианта решения, тема будет закрыта, а заодно и все последующие в подобном виде. Мы не фрилансеры, чтобы решать за тебя твои контрольные.

-------

Пройденные курсы:
[Microsoft №10174 Sharepoint], [SharePoint]
Мои проекты:[CheckAdmins], [NetSend7], [System Uptime], [Remote RAdmin LogViewer],[Netdom GDI], [Holidays - напоминалка о днях рождения]

А я офис-гуру :)


Отправлено: 06:11, 01-02-2011 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Пользователь


Сообщения: 120
Благодарности: 22

Профиль | Цитировать


Дашка, я не пойму что уже сезон контрольных работ снова начался? (Вам надо на форум фрилансеров, или на доску объявлений по решению задач), но на сей раз в виде исключения - держите:

функция для корректного написания обозначения числа в виде текста
Код: Выделить весь код
Public Function fnNum2Word(ByVal inp As Long, ByVal fir As String, ByVal sec As String, ByVal many As String) As String
Dim tmp As String
    tmp = Format$(inp, "000")
    If Len(tmp) > 2 Then tmp = Mid(tmp, Len(tmp) - 1, 2)
    Select Case Val(Mid(tmp, 1, 1) & "")
        Case 1
            Select Case Val(Mid(tmp, 2, 1) & "")
                Case 0 To 9
                    fnNum2Word = many
            End Select
        Case 0, 2 To 9
            Select Case Val(Mid(tmp, 2, 1) & "")
                Case 1
                    fnNum2Word = fir
                Case 2 To 4
                    fnNum2Word = sec
                Case 0, 5 To 9
                    fnNum2Word = many
            End Select
    End Select
End Function
собственно результат
Код: Выделить весь код
Sub RunTask()
Dim inp As String
Const EndOfWorkDay = 18 'Время завершения рабочего дня
Const EndOfSunDay = 24 'Время завершения суток
    inp = InputBox("Введите время в формате чч - двухзначное представление часа", "Введите время", Format$(Now(), "hh"))
    Debug.Print "До конца рабочего дня осталось " & (EndOfWorkDay - Val(inp)) & " " & fnNum2Word((EndOfWorkDay - Val(inp)), "час", "часа", "часов")
    Debug.Print "До конца суток осталось " & (EndOfSunDay - Val(inp)) & " " & fnNum2Word((EndOfSunDay - Val(inp)), "час", "часа", "часов")
End Sub

Отправлено: 09:11, 01-02-2011 | #3


Новый участник


Сообщения: 13
Благодарности: 0

Профиль | Отправить PM | Цитировать


по введенному времени определить количество часов до конца дня.

Код: Выделить весь код
Sub asdfhjkl()      
Dim a As Date  
Dim b As Date  
Dim c As Date    
Dim t As Date    
h = Hour(a) 'переменной присваиваются часы  
m = Minute(b) 'переменной присваиваются минуты  
s = Second(c) 'переменной присваиваются секунды    
papday = DateSerial(a, b, c)    
h1 = InputBox("введите часы окончания дня")  
m1 = InputBox("введите минуты окончания дня")  
s1 = InputBox("введите секунды окончания дня")        
h2 = InputBox("введите настоящее время (часы)")  
m2 = InputBox("введите настоящее время (минуты)")  
s2 = InputBox("введите настоящее время (секунды)")    
x = h1 - h2  
y = m1 - m2  
Z = s1 - s2      
c = DateSerial(year1, month1, day1) 'формирование даты  
MsgBox ("Ответ= " & DateDiff("x", papday, a) & " часов")  
MsgBox ("Ответ= " & DateDiff("y", papday, a) & " минут")  
MsgBox ("Ответ= " & DateDiff("z", papday, a) & " секунд")    
End Sub

Последний раз редактировалось Delirium, 08-02-2011 в 01:19. Причина: Привел код в удобоваримый вид.


Отправлено: 20:11, 07-02-2011 | #4


Аватара для Delirium

Ветеран


Сообщения: 5624
Благодарности: 936

Профиль | Отправить PM | Цитировать


Дашка, предупреждение: код надо оформлять в нормальном виде, а не одной строкой.

И я не вижу описания, что не работает. Если Вы будете продолжать в таком же духе, учетная запись будет забанена на неделю для изучения правил форума.

-------

Пройденные курсы:
[Microsoft №10174 Sharepoint], [SharePoint]
Мои проекты:[CheckAdmins], [NetSend7], [System Uptime], [Remote RAdmin LogViewer],[Netdom GDI], [Holidays - напоминалка о днях рождения]

А я офис-гуру :)

Это сообщение посчитали полезным следующие участники:

Отправлено: 01:17, 08-02-2011 | #5


В Поисках Истины


Сообщения: 802
Благодарности: 135

Профиль | Отправить PM | Цитировать


Цитата Дашка:
h1 = InputBox("введите часы окончания дня") m1 = InputBox("введите минуты окончания дня") s1 = InputBox("введите секунды окончания дня") »
А есть ли в этом смысл?конец дня он и есть конец, и всегда одинаковое время окончания!

Цитата Дашка:
переменной присваиваются часы »
Тут я чуть чуть не допонял) Нужно ли сначала объявить переменные?прежде чем инициализировать?И возможно ли такое извлечь из "Date" часы, если "Date" не инициализирована?

-------
foreach(short w in new short[] {73,3,79,83,90,79,78,69}){
Console.Write((char)w);
}


Отправлено: 07:49, 08-02-2011 | #6


Пользователь


Сообщения: 120
Благодарности: 22

Профиль | Цитировать


Дашка, зачем темы то плодить, было уже это и причем Вы же её и создали

Отправлено: 09:10, 21-02-2011 | #7


Аватара для Delirium

Ветеран


Сообщения: 5624
Благодарности: 936

Профиль | Отправить PM | Цитировать


И правда, недосмотрел. Тема скрепляется с дублем.

-------

Пройденные курсы:
[Microsoft №10174 Sharepoint], [SharePoint]
Мои проекты:[CheckAdmins], [NetSend7], [System Uptime], [Remote RAdmin LogViewer],[Netdom GDI], [Holidays - напоминалка о днях рождения]

А я офис-гуру :)


Отправлено: 09:22, 21-02-2011 | #8



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » VBA - По введенному времени определить количество часов до конца дня.

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - [решено] Как определить количество установленной памяти в ХР с помошью .cmd .bat? xaosxaos Скриптовые языки администрирования Windows 17 28-03-2017 23:57
CMD/BAT - [решено] можно ли определить количество параметров команды? GoodFella Скриптовые языки администрирования Windows 8 08-12-2010 15:29
Произведения на злобу дня paulkorotoon Флейм 0 08-12-2009 21:35
Разное - Можно ли изменить отображение времени (часов), добавив дату и день недели? truvo Оформление Windows XP 17 13-03-2009 10:10
Тема дня, невозможное возможно. Ment69 О сайте и форуме 4 14-02-2007 12:03




 
Переход