Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - .NET

Страница: 1 | 2 | 3 |

 

  Вопрос: Работа со временем в VB.NET Добавлено: 07.05.06 17:12  

Автор вопроса:  Alexei1

Ответить

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

Номер ответа: 31
Автор ответа:
 Alexei1



Вопросов: 2
Ответов: 19
 Профиль | | #31 Добавлено: 19.05.06 19:18
Я так понял не чего архитрудного тут нет? :) прсто сменить время нужно :) ну баксов 5-10 не больше :) нужен просто код

Ответить

Номер ответа: 32
Автор ответа:
 EROS



Вопросов: 58
Ответов: 4255
 Профиль | | #32 Добавлено: 19.05.06 19:50
Я так понял не чего архитрудного тут нет?

Разумеется нет! Особенно учитывая то, что я тебе все уже по полочкам разложил!!
ну баксов 5-10 не больше :)

И ты готов заплатить 10$ за то, чтобы не разбираться с SetLocalTime??? вот что лень людская делает.. :-)))
Не нужны мне твои $.. мне просто хочется знать.. ради чего все это? В какой задаче понадобилось меня локальное время в системе????

А вот и то, что тебе нужно..
Imports System.Runtime.InteropServices

<StructLayout(LayoutKind.Sequential)> _
Structure SYSTEMTIME
    <MarshalAs(UnmanagedType.U2)> _
    Dim wYear As Short
    <MarshalAs(UnmanagedType.U2)> _
    Dim wMonth As Short
    <MarshalAs(UnmanagedType.U2)> _
    Dim wDayOfWeek As Short
    <MarshalAs(UnmanagedType.U2)> _
    Dim wDay As Short
    <MarshalAs(UnmanagedType.U2)> _
    Dim wHour As Short
    <MarshalAs(UnmanagedType.U2)> _
    Dim wMinute As Short
    <MarshalAs(UnmanagedType.U2)> _
    Dim wSecond As Short
    <MarshalAs(UnmanagedType.U2)> _
    Dim wMilliseconds As Short
End Structure

Public Class Form1

    Private Declare Function SetLocalTime Lib "kernel32.dll" (ByRef lpSystemTime As SYSTEMTIME) As Integer

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

        Dim LocalTime As New SYSTEMTIME

        'Set local time to 19/05/2006 15:00
        With LocalTime
            .wYear = 2006
            .wMonth = 5
            .wDay = 19
            .wDayOfWeek = 5
            .wHour = 15
            .wMinute = 0
            .wSecond = 0
            .wMilliseconds = 0
        End With

        SetLocalTime(LocalTime)

    End Sub

End Class

Ответить

Номер ответа: 33
Автор ответа:
 Alexei1



Вопросов: 2
Ответов: 19
 Профиль | | #33 Добавлено: 19.05.06 22:58
Спасибо!
Вот я скопировал 1 раз этот код, и он заработал :) теперь сделал так:



Imports System.Runtime.InteropServices

<StructLayout(LayoutKind.Sequential)> _
Structure SYSTEMTIME
    <MarshalAs(UnmanagedType.U2)> _
    Dim wYear As Short
    <MarshalAs(UnmanagedType.U2)> _
    Dim wMonth As Short
    <MarshalAs(UnmanagedType.U2)> _
    Dim wDayOfWeek As Short
    <MarshalAs(UnmanagedType.U2)> _
    Dim wDay As Short
    <MarshalAs(UnmanagedType.U2)> _
    Dim wHour As Short
    <MarshalAs(UnmanagedType.U2)> _
    Dim wMinute As Short
    <MarshalAs(UnmanagedType.U2)> _
    Dim wSecond As Short
    <MarshalAs(UnmanagedType.U2)> _
    Dim wMilliseconds As Short
End Structure

Public Class Form1

    Private Declare Function SetLocalTime Lib "kernel32.dll" (ByRef lpSystemTime As SYSTEMTIME) As Integer

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

        Dim LocalTime As New SYSTEMTIME

        'Set local time to 19/05/2006 15:00
        With LocalTime

            .wHour = TextBox1.Text
            .wMinute = TextBox2.Text

        End With

        SetLocalTime(LocalTime)

    End Sub


End Class


И у меня не работает :(, это у меня баг или я штото не так делаю, мало того что теперь и старый код не работает!? всё время меняется на 2:00 (это в первый самый раз задал), что я не так сделал? EROS извиняюсь за глупые вопросы, но это вопрос жизни и смерти :)

Ответить

Номер ответа: 34
Автор ответа:
 EROS



Вопросов: 58
Ответов: 4255
 Профиль | | #34 Добавлено: 20.05.06 00:33
Слушай... да чего там мелочиться? Накинь пару сотен зеленых и я все сам напишу! И твои нервы целее будут, и мои!!

Imports System.Runtime.InteropServices
Imports Microsoft.VisualBasic.Information

<StructLayout(LayoutKind.Sequential)> _
Structure SYSTEMTIME
    <MarshalAs(UnmanagedType.U2)> _
    Dim wYear As Short
    <MarshalAs(UnmanagedType.U2)> _
    Dim wMonth As Short
    <MarshalAs(UnmanagedType.U2)> _
    Dim wDayOfWeek As Short
    <MarshalAs(UnmanagedType.U2)> _
    Dim wDay As Short
    <MarshalAs(UnmanagedType.U2)> _
    Dim wHour As Short
    <MarshalAs(UnmanagedType.U2)> _
    Dim wMinute As Short
    <MarshalAs(UnmanagedType.U2)> _
    Dim wSecond As Short
    <MarshalAs(UnmanagedType.U2)> _
    Dim wMilliseconds As Short
End Structure

Public Class Form1

    Private Declare Sub GetLocalTime Lib "kernel32.dll" (ByRef lpSystemTime As SYSTEMTIME)
    Private Declare Function SetLocalTime Lib "kernel32.dll" (ByRef lpSystemTime As SYSTEMTIME) As Integer

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

        Const ERR_NOTNUMBER As String = "Please, enter number value!"
        Const ERR_NOTVALIDNUMBER As String = "Number is not valid!"

        Dim sHour, sMinute As Short
        Dim strHour As String = TextBox1.Text.Trim
        Dim strMinute As String = TextBox2.Text.Trim

        'Not number
        If Not IsNumeric(strHour) Then ShowError(ERR_NOTNUMBER, TextBox1) : Return
        If Not IsNumeric(strMinute) Then ShowError(ERR_NOTNUMBER, TextBox2) : Return

        'Not short number
        If Not Short.TryParse(strHour, sHour) Then ShowError(ERR_NOTVALIDNUMBER, TextBox1) : Return
        If Not Short.TryParse(strMinute, sMinute) Then ShowError(ERR_NOTVALIDNUMBER, TextBox2) : Return

        'Number out of time range
        If sHour < 0 OrElse sHour > 23 Then ShowError("Value must be 0-23", TextBox1) : Return
        If sMinute < 0 OrElse sHour > 59 Then ShowError("Value must be 0-59", TextBox2) : Return

        Dim LocalTime As New SYSTEMTIME

        'Get local time
        GetLocalTime(LocalTime)

        'Change & set local time
        With LocalTime
            .wHour = sHour
            .wMinute = sMinute
        End With
        SetLocalTime(LocalTime)

    End Sub

    Private Sub ShowError(ByVal Message As String, ByVal focusedObject As TextBox)

        If Message Is Nothing OrElse _
           Message.Trim.Length = 0 OrElse _
           focusedObject Is Nothing Then Return

        MessageBox.Show(Message, "User error", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
        focusedObject.SelectAll()
        focusedObject.Focus()

    End Sub

End Class


и теперь только попробуй сказать, что это НЕ РАБОТАЕТ!!!

Ответить

Номер ответа: 35
Автор ответа:
 EROS



Вопросов: 58
Ответов: 4255
 Профиль | | #35 Добавлено: 20.05.06 02:32
А твоя ошибка в том, что..
.wHour = TextBox1.Text
.wMinute = TextBox2.Text

ты вместо числа типа Short подсовываешь ему String!!! ты что нибудь про типы данных слышал?
Кроме того.. ты указал только часы и минуты... и кто вместо тебя остальное будет присваивать???
Как может комп установить НУЛЕВОЙ ДЕНЬ, НУЛЕВОГО МЕСЯЦА И НУЛЕВОГО ГОДА???????

Ответить

Страница: 1 | 2 | 3 |

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



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