Vynulování proměnné každou hodinu   zodpovězená otázka

VB.NET

Zdravím. V mém programu se určitá proměnná roste po dobu 8 hodin a druhá proměnná roste současně s ní, ale každou hodinu začíná opět od nuly (Celkové počítadlo a hodinové počítadlo). A každou novou hodinu se hodinové počítadlo vynuluje. Zatím to řeším tímto způsobem:

If Microsoft.VisualBasic.Mid(Label3.Text, 5, 2) = "00" _
                        And kusu23hodina <> "0" Then

                kusu23hodina = "0"

                'During the hour, the value change only if the last value of general counter change

            ElseIf ValTemp1 <> CStr(-(CInt(Target) - CInt(kusuok23))) Then

                kusu23hodina = CStr(CInt(kusu23hodina) + 1)

            End If

Pokud však během první minuty nové hodiny se počítadlo zvýší o jedna, tím se zvýší i hodinové počítadlo na jedna a hned se zase vynuluje. Přidat k tomu ještě podmínku aby i vteřinová část musela být "00" se mi moc nechce. Nejsem si jistý, že by to program v té jedné vteřině stihl projít skrze část, které vynulovává hodinové počátadlo.

Neměl by někdo nějaký nápad?

Hodiny ukazuji v programu pomocí text labelu s timerem nastaveným na 1000 milisecond. (Pokud by i tato část šla nějak vylepšit nebráním se tomu.

Private Sub Timer1_Tick(ByVal sender As Object, ByVal e As System.EventArgs) Handles Timer1.Tick

        Label3.Text = Now.ToLongTimeString    'formát 01:58:48 AM

    End Sub

Díky předem za návrhy jak z toho ven

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

Takhle to vůbec neřešte. Na všechny operace s časem máte typ DateTime (uchovává datum i čas) a na operaci s časovým usekem máte TimeSpan (uchovávat časový úsek).

Pro celý formulář / komponentu budete mít proměnnou:

Dim pocatek As DateTime

Při začátku si uložíte čas začátku:

pocatek = Now

Zjistit časový úsek od začátku pak lze:

Dim usek As TimeSpan = Now - pocatek

V této proměnné pak už máte vše, co potřebujete:

usek.Minutes ' počet minut v aktuální hodině
usek.TotalMinutes ' celkový počet minut od počáku
usek.Hours ' počet hodin v aktuálním úseku
usek.TotalHours ' celkový počet hodin od začátku
nahlásit spamnahlásit spam 2 / 2 odpovědětodpovědět

Díky za tip.

S datem jsem zatím nikdy moc nepracoval.

Vyzkouším to, v případě problémů (doufám že nebudou) se zde pozeptám.

nahlásit spamnahlásit spam 0 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