Sub Initialize
Dim seconds As Double
Dim convertedDate As Variant
Dim formattedDate As String
' Пример: текущее время в секундах
seconds = 1704067200 ' Пример: 1 января 2024 года
' Преобразование
convertedDate = ConvertSecondsToDate(seconds)
formattedDate = FormatSecondsAsDate(seconds, "DD/MM/YYYY HH:NN:SS")
' Вывод результата
Print "Секунды: " & seconds
Print "Преобразованная дата: " & Cstr(convertedDate)
Print "Форматированная дата: " & formattedDate
' Для отображения в сообщении
Messagebox "Дата: " & formattedDate
End Sub
Function FormatSecondsAsDate(seconds As Double, Optional format As String) As String
On Error GoTo ErrorHandler
Dim dateValue As Variant
Dim baseDate As Variant
baseDate = DateNumber(1970, 1, 1)
dateValue = baseDate + (seconds / 86400)
' Если формат не указан, используем стандартный
If format = "" Then format = "DD/MM/YYYY HH:NN:SS"
FormatSecondsAsDate = Format(dateValue, format)
Exit Function
ErrorHandler:
FormatSecondsAsDate = "Ошибка: " & Error$
End Function
Function ConvertSecondsToDate(seconds As Double) As Variant
On Error GoTo ErrorHandler
Dim baseDate As Variant
Dim resultDate As Variant
' Проверка на валидность входных данных
If seconds < 0 Then
ConvertSecondsToDate = Cstr("Неверное значение секунд")
Exit Function
End If
' Создаем базовую дату (1 января 1970)
baseDate = DateNumber(1970, 1, 1)
' Добавляем секунды (1 день = 86400 секунд)
resultDate = baseDate + (seconds / 86400)
ConvertSecondsToDate = resultDate
Exit Function
ErrorHandler:
ConvertSecondsToDate = Cstr("Ошибка преобразования: " & Error$)
End Function
Sub ConvertSecondsToDateTime(seconds As Long, dat As String)
' seconds — ваше число секунд (Long, чтобы вместить большие значения)
Dim dt As New NotesDateTime("01/01/1970 00:00:00") ' Базовая дата Unix эпохи
' Разбиваем секунды на компоненты
Dim days As Long
Dim hours As Integer
Dim minutes As Integer
Dim secs As Integer
days = seconds \ 86400 ' Целые дни
seconds = seconds Mod 86400 ' Остаток секунд
hours = seconds \ 3600 ' Целые часы
seconds = seconds Mod 3600
minutes = seconds \ 60 ' Целые минуты
secs = seconds Mod 60 ' Остаток секунд (0-59)
' Добавляем к дате (каждый метод принимает Integer)
Call dt.AdjustDay(days)
Call dt.AdjustHour(hours)
Call dt.AdjustMinute(minutes)
Call dt.AdjustSecond(secs)
' Выводим результат
dat = CStr(dt.Localtime)
End Sub
Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab