На главную
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Правила раздела Visual Basic: Общие вопросы
Здесь обсуждаются вопросы по языку Visual Basic 1-6 (а так же по схожим языкам, как, например, PowerBASIC).
Вопросы по Visual Basic .NET (это который входит в состав Visual Studio 2002/2003/2005/2008+, для тех, кто не в курсе) обсуждаются в разделе .NET.

Обратите внимание:
1. Прежде чем начать новую тему или отправить сообщение, убедитесь, что Вы не нарушаете правил форума!
2. Обязательно воспользуйтесь поиском. Возможно, Ваш вопрос уже обсуждали. Полезные ссылки приведены ниже.
3. Темы с просьбой выполнить какую-либо работу за автора в этом разделе не обсуждаются. Студенты, вам сюда: ПОМОЩЬ СТУДЕНТАМ!
4. Используйте теги [ code=vba ] ...текст программы... [ /code ] для выделения текста программы подсветкой.
5. Помните, здесь телепатов нет. Формулируйте свой вопрос максимально грамотно и чётко: Как правильно задавать вопросы
6. Запрещено отвечать в темы месячной (и более) давности, без веских на то причин.

Полезные ссылки:
user posted image FAQ Сайта user posted image FAQ Раздела user posted image Кладовка user posted image Наши Исходники user posted image API-Guide user posted image Поиск по Разделу user posted image MSDN Library Online user posted image Google

Ваше мнение о модераторах: user posted image SCINER, user posted image B.V.
Модераторы: SCINER, B.V.
  
> Секунды в дату и время, NTP SNTP
    Всем привет!

    Помогите решить проблемку. Позарез нада.
    Есть количество секунд (32 бита, то биш лонг)
    прошедших с 00:00:00 01.01.1900,
    их надо преобразовать в дату и время,
    т.е. в итоге должно получится примерно
    слующее 2004.10.23 09:48:19.

    Пасиба.
    Курение помогает думать ... когда надо отвлечься
      тип данных Дате храниться как число с плавующей точкой(толькл не помню Сингле или Доубле),те тебе нужен некий коэфициент перевода,1 день в цифре равен 1,1 час-1/24 или примерно 0,041666; 1 минута -1/1440 или примерно 0,00069 и наконец одна секунда 1/86400 или в десятичной примерно 0,0000157
      Пример :
      ExpandedWrap disabled
         
        Dim MY_TIME As Date 'НАчальная точка отсчета
        Dim END_TIME As Date 'Конечная точка отсчета
        Dim TEMP As Single 'Количество пройденного времени
        If IsNumeric(Text1) = False Then Exit Sub
        Dim SECOND_COL As Long 'Количество секунд
         
        MY_TIME = CDate("1.02.2000") 'Начали считать с 1 февраля 2000 года
        SECOND_COL = Text1 'Прошло 14589 секунд
        TEMP = SECOND_COL / 86400
        END_TIME = MY_TIME + TEMP 'Такое время будет спустя 14589 секунд
         
        Debug.Print "Пршло лет:    " & vbTab & DateDiff("YYYY", MY_TIME, END_TIME)
        Debug.Print "Пршло месяцев:" & vbTab & DateDiff("m", MY_TIME, END_TIME)
        Debug.Print "Пршло дней:   " & vbTab & DateDiff("d", MY_TIME, END_TIME)
        Debug.Print "Пршло часов:  " & vbTab & DateDiff("h", MY_TIME, END_TIME)
        Debug.Print "Пршло минут:  " & vbTab & DateDiff("n", MY_TIME, END_TIME)
        Debug.Print "Пршло секунд: " & vbTab & DateDiff("s", MY_TIME, END_TIME)


      Это надо было?
        GVA,

        ExpandedWrap disabled
           
          Option Explicit
          Private Sub formir()
             Dim local_time As Long
             Dim l_time As Single
             Dim l_hour As Long, l_min As Long, l_sec As Long
             Dim l_msec As Single, s As String
             l_time = Timer
             Label1.Caption = "Секунды и мил.сек - " & l_time
             local_time = Int(l_time)
             l_msec = Round(l_time - Int(l_time), 2)  '  мил.сек
             If local_time / 3600 >= 1 Then ' часы
               l_hour = Int(local_time / 3600)
               local_time = local_time - l_hour * 3600
             End If
             If local_time / 60 >= 1 Then ' минуты
               l_min = Int(local_time / 60)
               local_time = local_time - l_min * 60
             End If
             l_sec = Int(local_time) ' сек
             s = Right("0" & Trim(Str(l_hour)), 2) & ":" & _
                 Right("0" & Trim(Str(l_min)), 2) & ":" & _
                 Right("0" & Trim(Str(l_sec)), 2) & _
                 Trim(Str(l_msec))
             Label2.Caption = "Сформированное время - " & s
          End Sub
          Private Sub Command1_Click()
             Call formir
          End Sub
          Private Sub Form_Load()
             Command1.Caption = "Показать"
             Label1.AutoSize = True: Label2.AutoSize = True
             Label1.Caption = "Секунды и мил.сек - "
             Label2.Caption = "Сформированное время - "
             Call formir
          End Sub



        Типа этого, только для дня, мес, года ещё надо сделать.
        Зло почти всегда есть истина наслаждения и его главный соблазн. (маркиз де Сад Шарль Нодье). Сайт
        0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
        0 пользователей:


        Рейтинг@Mail.ru
        [ Script Execution time: 0,1085 ]   [ 18 queries used ]   [ Generated: 28.01.20, 03:11 GMT ]