Как сделать цифровые часы visual basic

Добавил пользователь Morpheus
Обновлено: 04.10.2024

Поэтому мне нужно отображать часы в режиме реального времени в моей форме, но я не уверен, как это сделать. Я знаю, что код:

даст мне текущее время, но я не уверен, как постоянно показывать это в моей форме.

У меня есть идея, которая заключается в том, чтобы поместить этот код внутри цикла следующим образом:

Однако я не уверен, где разместить этот код. Любые предложения будут очень благодарны!

Я решил проблему, которую другие имели с данным кодом в выбранном ответе. Я удалил последнюю строку, и я изменил Label1.caption = Now(), чтобы вместо этого использовать Time().

Затем я вызвал это в своей функции userform_initialize. Label1.caption был изменен на соответствующую метку в моей пользовательской форме.

Спасибо за помощь!

Excel имеет метод OnTime , который позволяет запланировать выполнение любой процедуры.

Просто используйте его, чтобы запланировать односекундный ритм.

Запустите цикл, вызвав DisplayCurrentTime() один раз, например, в методе инициализации вашей формы.

Функции даты и времени VBScript помогают разработчикам преобразовывать дату и время из одного формата в другой или выражать дату или время в формате, соответствующем определенному условию.

Функция возвращает текущую системную дату.

Синтаксис

пример

Добавьте кнопку и добавьте следующую функцию.

Когда вы выполняете функцию, она производит следующий вывод.

The Value of a : 19/07/2014

Функция, которая возвращает текущую системную дату.

CDate

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

Синтаксис

пример

Добавьте кнопку и добавьте следующую функцию.

Когда вы выполняете функцию, она производит следующий вывод.

The Value of a : 1/01/2020
The Value of b : 31/12/2050

Функция, которая преобразует данный вход в дату.

DateAdd

Функция, которая возвращает дату, к которой был добавлен указанный временной интервал.

Синтаксис

Параметр/Описание

  • Интервал - требуемый параметр. Он может принимать следующие значения.
  • d - день года
  • м - месяц года
  • y - год года
  • yyyy - year
  • w - день недели
  • ww - неделя
  • q - квартал
  • час - час
  • м - минута
  • s - секунда
  • Номер - требуемый параметр. Он может принимать как положительные, так и отрицательные параметры.
  • Дата - требуемый параметр. Вариант или литерал, представляющий дату добавления интервала.

пример

Когда вы выполняете вышеуказанную функцию, она производит следующий вывод.

Line 1 : 27/06/1895
Line 2 : 27/09/1894
Line 3 : 27/07/1894
Line 4 : 28/06/1894
Line 5 : 28/06/1894
Line 6 : 28/06/1894
Line 7 : 4/07/1894
Line 8 : 1/01/2013 1:00:00 PM
Line 9 : 1/01/2013 12:01:00 PM
Line 10 : 1/01/2013 12:00:01 PM
Line 11 : 27/06/1893
Line 12 : 27/03/1894
Line 13 : 27/05/1894
Line 14 : 26/06/1894
Line 15 : 26/06/1894
Line 16 : 26/06/1894
Line 17 : 20/06/1894
Line 18 : 1/01/2013 11:00:00 AM
Line 19 : 1/01/2013 11:59:00 AM
Line 20 : 1/01/2013 11:59:59 AM

Функция, которая возвращает дату, к которой был добавлен указанный временной интервал.

DateDiff

Функция, которая возвращает разницу между двумя заданными временными интервалами.

Синтаксис

Параметр/Описание

  • Интервал - требуемый параметр. Он может принимать следующие значения.
  • d - день года
  • м - месяц года
  • y - год года
  • yyyy - year
  • w - день недели
  • ww - неделя
  • q - квартал
  • час - час
  • м - минута
  • s - секунда
  • Date1 и Date2 - Необходимые параметры.
  • Firstdayofweek - необязательный параметр. Задает первый день недели. Он может принимать следующие значения.
  • 0 = vbUseSystemDayOfWeek - настройка API поддержки национальных языков (NLS)
  • 1 = vbSunday - воскресенье
  • 2 = vbMonday - понедельник
  • 3 = vbTuesday - вторник
  • 4 = vbWednesday - среда
  • 5 = vbThursday - четверг
  • 6 = vbFriday - пятница
  • 7 = vbSaturday - суббота
  • Firstdayofyear - необязательный параметр. Указывает на первый день года. Он может принимать следующие значения.
  • 0 = vbUseSystem - настройка API поддержки национальных языков (NLS)
  • 1 = vbFirstJan1 - начать с недели, в которой происходит 1 января (по умолчанию)
  • 2 = vbFirstFourDays - Начните с недели, которая имеет не менее четырех дней в новом году
  • 3 = vbFirstFullWeek - начните с первой полной недели нового года

пример

Добавьте кнопку и добавьте следующую функцию.

Когда вы выполняете вышеуказанную функцию, она производит следующий вывод.

Line 1 : 1
Line 2 : 4
Line 3 : 12
Line 4 : 365
Line 5 : 365
Line 6 : 52
Line 7 : 52
Line 8 : 8783
Line 9 : 527039
Line 10 : 31622340

Функция, которая возвращает разницу между двумя периодами времени.

DatePart

Функция, возвращающая определенную часть данной даты.

Синтаксис

Параметр/Описание

  • Интервал - требуемый параметр. Он может принимать следующие значения.
  • d - день года
  • м - месяц года
  • y - год года
  • yyyy - year
  • w - день недели
  • ww - неделя
  • q - квартал
  • час - час
  • м - минута
  • s - секунда
  • Date1 - обязательный параметр.
  • Firstdayofweek - необязательный параметр. Задает первый день недели. Он может принимать следующие значения.
  • 0 = vbUseSystemDayOfWeek - настройка API поддержки национальных языков (NLS)
  • 1 = vbSunday - воскресенье
  • 2 = vbMonday - понедельник
  • 3 = vbTuesday - вторник
  • 4 = vbWednesday - среда
  • 5 = vbThursday - четверг
  • 6 = vbFriday - пятница
  • 7 = vbSaturday - суббота
  • Firstdayofyear - необязательный параметр. Указывает на первый день года. Он может принимать следующие значения.
  • 0 = vbUseSystem - настройка API поддержки национальных языков (NLS)
  • 1 = vbFirstJan1 - начать с недели, в которой происходит 1 января (по умолчанию)
  • 2 = vbFirstFourDays - Начните с недели, которая имеет не менее четырех дней в новом году
  • 3 = vbFirstFullWeek - начните с первой полной недели нового года

пример

Добавьте кнопку и добавьте следующую функцию.

Когда вы выполняете вышеуказанную функцию, она производит следующий вывод.

Line 1 : 1
Line 2 : 15
Line 3 : 3
Line 4 : 1

Функция, возвращающая указанную часть заданного значения даты ввода.

DateSerial

Функция, которая возвращает дату для заданных параметров дня, месяца и года.

Синтаксис

Параметр/Описание

  • Год - требуемый параметр. Число от 100 до 9999 или числовое выражение. Значения от 0 до 99 интерпретируются как годы с 1900 по 1999 год. Для всех аргументов за другой год используйте полный четырехзначный год.
  • Месяц - требуемый параметр. Он также может быть в форме выражения, которое должно варьироваться от 1 до 12.
  • День - требуемый параметр. Он также может быть в форме выражения, которое должно варьироваться от 1 до 31.

пример

Добавьте кнопку и добавьте следующую функцию.

Когда вы выполняете вышеуказанную функцию, она производит следующий вывод.

Функция, которая возвращает действительную дату для данного года, месяца и даты.

FormatDateTime

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

Синтаксис

Параметр/Описание

  • Дата - требуемый параметр.
  • Формат - необязательный параметр. Значение, определяющее формат даты или времени, который будет использоваться. Он может принимать следующие значения.
  • 0 = vbGeneralDate - Default
  • 1 = vbLongDate - дата возврата
  • 2 = vbShortDate - Дата возврата
  • 3 = vbLongTime - возвращает время
  • 4 = vbShortTime - возвращает время

пример

Добавьте кнопку и добавьте следующую функцию.

Когда вы выполняете вышеуказанную функцию, она производит следующий вывод.

Line 1 : 15/08/2013 8:25:00 PM
Line 2 : Thursday, 15 August 2013
Line 3 : 15/08/2013
Line 4 : 8:25:00 PM
Line 5 : 20:25

Функция, которая форматирует дату на основе поставляемых параметров.

IsDate

Функция, возвращающая логическое значение, независимо от того, является ли данный ввод датой.

Синтаксис

пример

Добавьте кнопку и добавьте следующую функцию.

Когда вы выполняете вышеуказанную функцию, она производит следующий вывод.

Line 1 : True
Line 2 : True
Line 3 : True

Функция, возвращающая логическое значение, независимо от того, является ли поставленный параметр датой.

Синтаксис

пример

Добавьте кнопку и добавьте следующую функцию.

Когда вы выполняете вышеуказанную функцию, она производит следующий вывод.

Функция, которая возвращает целое число от 1 до 31, которое представляет день указанной даты.

Month

Функция Month возвращает число от 1 до 12, которое представляет месяц указанной даты.

Синтаксис

пример

Добавьте кнопку и добавьте следующую функцию.

Когда вы выполняете вышеуказанную функцию, она производит следующий вывод.

Функция, которая возвращает целое число от 1 до 12, которое представляет месяц указанной даты.

Функция Год возвращает целое число, которое представляет год указанной даты.

Синтаксис

пример

Добавьте кнопку и добавьте следующую функцию.

Когда вы выполняете вышеуказанную функцию, она производит следующий вывод.

Функция, которая возвращает целое число, которое представляет год указанной даты.

MonthName

Функция MonthName возвращает имя месяца для указанной даты.

Синтаксис

Параметр Описание

  • Месяц - требуемый параметр. Он определяет номер месяца.
  • Toabbreviate - необязательный параметр. Булевское значение, указывающее, следует ли сокращать имя месяца. Если оставить пустым, значение по умолчанию будет считаться False.

пример

Добавьте кнопку и добавьте следующую функцию.

Когда вы выполняете вышеуказанную функцию, она производит следующий вывод.

Line 1 : Jan
Line 2 : January
Line 3 : Jul
Line 4 : July

Функция, которая возвращает имя определенного месяца за указанную дату.

WeekDay

Функция WeekDay возвращает целое число от 1 до 7, которое представляет день недели для указанной даты.

Синтаксис

Параметр/Описание

Добавьте кнопку и добавьте следующую функцию.

Когда вы выполняете вышеуказанную функцию, она производит следующий вывод.

Line 1: 5 Line 2: 4 Line 3: 4 Line 4: 3 Line 5: 4 Line 6: 5

Функция, которая возвращает целое число (от 1 до 7), которое представляет день недели в течение указанного дня.

WeekDayName

Функция WeekDayName возвращает имя дня недели за указанный день.

Синтаксис WeekdayName(weekday[,abbreviate[,firstdayofweek]])

  • Weekday - требуемый параметр. Номер дня недели.
  • Toabbreviate - необязательный параметр. Булевское значение, указывающее, следует ли сокращать имя месяца. Если оставить пустым, значение по умолчанию будет считаться False.
  • Firstdayofweek - необязательный параметр. Задает первый день недели.
  • 0 = vbUseSystemDayOfWeek - настройка API поддержки национальных языков (NLS)
  • 1 = vbSunday - воскресенье
  • 2 = vbMonday - понедельник
  • 3 = vbTuesday - вторник
  • 4 = vbWednesday - среда
  • 5 = vbThursday - четверг
  • 6 = vbFriday - пятница
  • 7 = vbSaturday - суббота

пример

Добавьте кнопку и добавьте следующую функцию.

Когда вы выполняете вышеуказанную функцию, она производит следующий вывод.

Line 1 : Tuesday
Line 2 : Mon
Line 3 : Sunday
Line 4 : Tue
Line 5 : Sunday

Функция, которая возвращает имя дня недели для указанного дня.

Функция Now возвращает текущую системную дату и время.

Синтаксис

пример

Добавьте кнопку и добавьте следующую функцию.

Когда вы выполняете вышеуказанную функцию, она производит следующий вывод. The Value of a : 19/07/2013 3:04:09 PM

Функция, которая возвращает текущую системную дату и время.

Функция Hour возвращает число от 0 до 23, которое представляет час дня для указанной отметки времени.

Синтаксис

пример

Добавьте кнопку и добавьте следующую функцию.

Когда вы выполняете вышеуказанную функцию, она производит следующий вывод.

Line 1: 15
Line 2: 23
Line 3: 14

Функция, которая возвращает целое число от 0 до 23, которое представляет часовую часть заданного времени.

Minute

Функция Minute возвращает число от 0 до 59, которое представляет минуту часа для указанной отметки времени.

Синтаксис

пример

Добавьте кнопку и добавьте следующую функцию.

Когда вы выполняете вышеуказанную функцию, она производит следующий вывод.

Line 1: 13
Line 2: 43
Line 3: 20

Функция, возвращающая целое число от 0 до 59, которое представляет минутную часть данного времени.

Second

Функция возвращает число от 0 до 59, которое представляет вторую часть часа для указанной отметки времени.

Синтаксис

пример

Добавьте кнопку и добавьте следующую функцию.

Когда вы выполняете вышеуказанную функцию, она производит следующий вывод. Line 1: 25
Line 2: 45
Line 3: 0

Функция, возвращающая целое число от 0 до 59, которое представляет собой секундную часть данного времени.

Функция времени возвращает текущее системное время.

Синтаксис

пример

Когда вы выполняете вышеуказанную функцию, она производит следующий вывод.

Line 1: 3:29:15 PM

Функция, которая возвращает текущее системное время.

Timer

Функция таймера возвращает число секунд и миллисекунд с 12:00.

Синтаксис

пример

Добавьте кнопку и добавьте следующую функцию.

Когда вы выполняете вышеуказанную функцию, она производит следующий вывод.

Time is : 19/07/2013 3:45:53 PM
Timer is: 56753.4

Функция, которая возвращает число секунд и миллисекунд с 12:00.

TimeSerial

Функция TimeSerial возвращает время для указанных часов, минут и вторых значений.

Синтаксис

Параметр/Описание

  • Hour - обязательный параметр, который представляет собой целое число от 0 до 23 или любое числовое выражение.
  • Minute - обязательный параметр, который представляет собой целое число от 0 до 59 или любое числовое выражение.
  • Second - обязательный параметр, который представляет собой целое число от 0 до 59 или любое числовое выражение.

пример

Добавьте кнопку и добавьте следующую функцию.

Когда вы выполняете вышеуказанную функцию, она производит следующий вывод.

8:01:02 PM
12:59:59 AM
2:20:18 PM

Функция, которая возвращает время для конкретного ввода часа, минуты и секунды.

TimeValue

Функция TimeValue преобразует заданную входную строку в допустимое время.

Синтаксис

пример

Добавьте кнопку и добавьте следующую функцию.

Когда вы выполняете вышеуказанную функцию, она производит следующий вывод.

Виктор Зыбин

Платон Коктышев

Создаешь проект, и на кнопке пишешь следующее:

rez = MsgBox(msg, style, title)
If rez = MsgBoxResult.Yes Then ' Если выбрал Да, тогда происходит какое то действие
Me.Text = "Вы нажали кнопку Да"
Else
Me.Text = "Вы нажали кнопку Нет"
End If
End Sub

Платон Коктышев

Dim rez As MsgBoxResult

rez = MsgBox("Подтвердить действие?", MsgBoxStyle.DefaultButton2 Or MsgBoxStyle.Information Or MsgBoxStyle.YesNo, "Информация")
If rez = MsgBoxResult.Yes Then ' Если выбрал Да, тогда происходит какое то действие
Me.Text = "Вы нажали кнопку Да"
Else
Me.Text = "Вы нажали кнопку Нет"
End If
End Sub

Александр Степанов

Платон Коктышев

Платон Коктышев

Вот небольшой пример, ключевые моменты с коментариями:

Dim x, y, r4, r5, r6

Private Sub p_hours(x, y, r)
Static per
h = Timer / 3600
h = h - 3
If h > 12 Then
h = h - 12
End If
Line (x, y)-(x + dx(per) * r, y + dy(per) * r), BackColor
a = h * 30
per = a
Line (x, y)-(x + dx(a) * r, y + dy(a) * r), RGB(255, 0, 255)
End Sub

Private Sub p_minutes(x, y, r)
Static per
m = (Timer - Int(Timer / 3600) * 3600) / 60
m = m + 45
If m > 60 Then
m = m - 60
End If
Line (x, y)-(x + dx(per) * r, y + dy(per) * r), BackColor
a = Int(m) * 6
per = a
Line (x, y)-(x + dx(a) * r, y + dy(a) * r), RGB(0, 0, 255)
End Sub

Private Sub p_seconds(x, y, r)
Static per
m = (Timer - Int(Timer / 3600) * 3600) / 60
s = (m - Int(m)) * 60
s = s + 45
If s > 60 Then
s = s - 60
End If
Line (x, y)-(x + dx(per) * r, y + dy(per) * r), BackColor
a = Int(s) * 6
per = a
Line (x, y)-(x + dx(a) * r, y + dy(a) * r), RGB(255, 0, 0)
End Sub

Private Sub Form_Paint()
Zoom = 2
max_x = Width ' максимум по X
max_y = Height ' максимум по Y
r1 = 750 * Zoom ' радиус циферблата
r2 = 650 * Zoom ' радиус часовых отметок
r3 = 700 * Zoom ' радиус минутных отметок
r4 = 600 * Zoom ' радиус секундной отметки
r5 = 550 * Zoom ' радиус минутной стрелки
r6 = 450 * Zoom ' радиус часовой стрелки
For n = 0 To 360 Step 2
x = max_x / 2
y = max_y / 2
' циферблат
If n = 0 Then
PSet (x + dx(n) * r1, y + dy(n) * r1), RGB(0, 0, 0)
Else
Line -(x + dx(n) * r1, y + dy(n) * r1), RGB(0, 0, 0)
End If
' минутные деления
If n Mod 6 = 0 And n Mod 30 <> 0 Then
Line (x + dx(n) * r3, y + dy(n) * r3)-(x + dx(n) * r1, y + dy(n) * r1), RGB(0, 0, 255)
End If
' часовые деления
If n Mod 30 = 0 Then
Line (x + dx(n) * r2, y + dy(n) * r2)-(x + dx(n) * r1, y + dy(n) * r1), RGB(255, 0, 255)
End If
Next
p_hours x, y, r6
p_minutes x, y, r5
p_seconds x, y, r4
End Sub

Private Function dx(n)
dx = Cos(rad(n))
End Function

Private Function dy(n)
dy = Sin(rad(n))
End Function

Private Function rad(n)
pi = Atn(1) * 4
rad = n * pi / 180
End Function

Private Sub Timer1_Timer()
p_hours x, y, r6
p_minutes x, y, r5
p_seconds x, y, r4
End Sub

И так, в этой по своей природе унылой публикации я кратко рассмотрю vba функции даты и времени, которые позволяют получить или установить параметры даты и времени, задать таймер выполнения заданного блока кода или сценария в целом. Также в конце статьи будет затронута функция vba языка format. Которая отвечает за форматирование данных.

vba работа с датами и временем

Функции VBA даты и времени

Date () – позволяет получить значение текущей даты, установленной в системе.

Time () – вернет установленное в системе время

Now () – комбинированная функция, так как она позволяет получить значение системной даты и времени.

DateAdd (интервал, число, дата) – позволяет прибавить к заданной дате (параметр “дата”) указанное количество лет, кварталов, месяцев или секунд. На выходе мы получим следующее значение: дата + (число * интервал).

DateDiff (интервал, дата, дата2) – позволяет получить разницу между заданными датами, например. В годах, месяцах и так далее, разница определяется параметром “интервал”.

DatePart (интервал, дата) – позволяет получить заданную часть даты, например, только значение года, месяца или дня недели. Результат возврата регулируется параметром “интервал”.

DateSerial (год, месяц, день) – данная функция vba принимает три числовые значения, по которым возвращается дата.

DateValue (строка) – аналог предыдущей функции, но тут в качестве параметра мы передаем не числа. А строковое значение, на основе которого будет возвращаться дата, vba работа с датами.

Day (дата) – позволяет получить значение текущего дня (если отсутствует параметр “дата”) или для заданной даты.

Year (дата) – позволяет получить значение текущего года (если отсутствует параметр “дата”) или для заданной даты.

Month (дата) – позволяет получить значение текущего месяца (если отсутствует параметр “дата”) или для заданной даты.

Weekday (дата) – позволяет получить значение текущей недели (если отсутствует параметр “дата”) или для заданной даты.

Hour (время) – позволяет получить текущее значение часов (если отсутствует параметр “время”) или для заданного времени, vba дата и время.

Minute (время) – позволяет получить текущее значение минут (если отсутствует параметр “время”) или для заданного времени.

Second (время) – позволяет получить текущее значение секунд (если отсутствует параметр “время”) или для заданного времени.

Timer () – удобная функция для определения промежутка времени, ушедшего на выполнение заданного блока кода. Сама функция возвращает целое количество секунд, которые прошли начиная с полуночи.

TimeSerial (часы, минуты, секунды) – позволяет получить время, заданное тремя параметрами

TimeValue (строка) – работает аналогично предыдущей функции, но для получения времени, передается не целое значение, а строковое.

MonthName (числовое значение) – VBA функция позволяет получить название месяца, в качестве параметра указываем номер месяца.

WeekDay (дата) - задает возвращает имя месяца словами по его номеру. Возвращаемое значение зависит от региональных настроек. Если они русские, то вернется русское название месяца.

Помимо указанных выше vba функций даты и времени, можно использовать и такие вариации:

Date (дата) – позволяет задать системную дату

Time (время) – позволяет задать системное время.

В приведенных выше функциях даты и времени vba языка используется параметр “интервал”, который может принимать следующие значения:

  • w – недели
  • q – квартал
  • d – месяца
  • y – года

VBA функции форматирование данных

Для форматирования данных в языке VBA используется функция Format , которая позволяет сформировать данные любого встроенного типа, используя заданный образец. Общий синтаксис функции format:

Format (Выражение, [“формат”, [первый день недели, [первая неделя года]]]) – тут параметр “выражение” является любым допустимым значением. Формат – необязательный параметр, который задает формат данных, должен заключаться в кавычки. Остальные два параметра также являются необязательными, и задают день недели, который нужно считать первым, и первую неделю года.

Параметр формат может принимать следующие значения:

  • General Number – числовое значение без выделения разрядов тысяч, например, 12150,2003
  • Currency – денежный формат, выделяются тысячные разряды и два знака после запятой, например, 255,33р.
  • Fixed – числовое значение без выделения разрядов тысяч и двумя знаками после запятой, например, 22439,12.
  • Standart – числовое значение, которое умножается на 100, при этом, остаются два знака после запятой и символ процента, например, 55,63%.
  • Scientific – числовой формат для научных вычисление, например, 5,23Е+03
  • Yes/No – данный параметр определяет, что функция вернет “Да” если форматированное выражение содержит строку Нет, или ненулевое значение и “Нет” в противном случае.
  • True/False – аналог предыдущего параметра, но для строк “Истина” и “Ложь”.
  • On/Off – для строк вида “Вкл” и “Выкл”.
  • General Date – форматирование выражения в соответствии с установленными в системе стандартами даты и времени, например, 10.11.02 12:25:50
  • Long Date – вывод полного формата даты, в зависимости от установок в системе, например, 10 октября 2013 г, vba функции даты.
  • Medium Date – средний формат дат, например, 10-Окт-13.
  • Short Date – короткий вывод формата даты, например, 10.10.13.
  • Long Time – вывод в формате времени (часы, минуты, секунды), например, 12:20:40.
  • Medium Time – 12 часовой формат времени (часы, минуты), например, 05:30.
  • Short Time - 24 часовой формат времени (часы, минуты), например, 17:30.

Спасибо за внимание. Автор блога Владимир Баталий

Читайте также: