počítaní času   otázka

VB.NET, Algoritmy

zdravím mistry v oboru VB

řeším problém, počítání času, konkrétně odčítání jedné hodnoty od druhé... př. start 06:00 hodin konec 16:00 hodin = výsledek 10:00 hodin

to bych vcelku zvládl přes timespan jenže co když bude konec druhý den např.

start 06:00 hodin konec 02:00 hodin = výsledek 20:00 hodin

tam už mi funkce timespan nefunguje.

díky za pomoc

nahlásit spamnahlásit spam 0 odpovědětodpovědět

tak jsem vyzkoušel použít funkci timeserial

co říkáte na tohle řešení?

  Try
            Dim t1 As Date = MaskedTextBox1.Text
            Dim t2 As Date = MaskedTextBox2.Text

            If t2.Hour > t1.Hour Then
                TextBox1.Text = t2.Hour - t1.Hour & ":" & t2.Minute - t1.Minute
                TextBox1.Text = CDate(TextBox1.Text).ToString("HH:mm")
            ElseIf t1.Hour > t2.Hour Then
                TextBox1.Text = 24 + (t2.Hour - t1.Hour) & ":" & t2.Minute() - t1.Minute
                TextBox1.Text = CDate(TextBox1.Text).ToString("HH:mm")
            ElseIf t2.Hour = t1.Hour Then
                TextBox1.Text = "24:00"
            End If
        Catch
            MsgBox("Špatně vyplněný čas")
            MaskedTextBox1.Clear()
            MaskedTextBox2.Clear()
            TextBox1.Clear()
            MaskedTextBox1.Focus()

        End Try

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Mne sa zdá, že tak trochu vymýšľate koleso, a popritom narobíte viaceré chyby. Skúste si pozrieť tento program:

http://stanoweb.aspone.cz/Time.zip

Na výber času som použil DateTimePicker s Format=DateTimePickerFormat.Time . Kód na zistenie rozdielu času potom vyzerá takto:

Dim first As TimeSpan = FirstTime.Value.TimeOfDay
Dim second As TimeSpan = SecondTime.Value.TimeOfDay
Dim difference As TimeSpan
If first > second Then
	difference = New TimeSpan(24, 0, 0) - (first - second)
Else
	difference = second - first
End If
Result.Text = difference.ToString()
nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

díky moc... tohle funguje... ještě to s dovolením přetvořím pro svou potřebu, ale ten vzoreček timespan to je to co jsem potřeboval :-)

díky moc...

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Dobrý den,

lze použít i tohle:

Dim t1 As DateTime = CDate("30.9.2012 20:00")
Dim t2 As DateTime = CDate("11.10.2012 2:03")
MsgBox(t2.Subtract(t1).ToString)

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:  
Heslo:  

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback