Tutkiskelin tässä aihetta:
https://www.ohjelmointiputka.net/keskustelu/890-entä-jos-tiedostoa-ei-ole
ja huomasin kohdassa:
minuutit% = 220 'peliä on pelattu 220 minuuttia tunnit% = minuutit% \ 60 minuutit% = minuutit% - tunnit% * 60 PRINT tunnit%; "tuntia,"; minuutit%; "minuuttia"
itseäni hyödyttävän kohdan mutta:
kun minuutit on: 270 tulostetaan: 4 tuntia 30 minuuttia
mutta kun minuutit on: 280 tulostetaan: 5 tuntia -20minuuttia
missä siis vika?
(kielenä Visual Basic)
Minulla tuo koodi kyllä toimii, miten käänsit koodin VB:lle?
aika = 220 'peliä on pelattu 220 minuuttia tunnit = aika \ 60 aika = aika - tunnit * 60
aika = minuutit
VB:stä löytyy myös kätevä Mod-operaattori, joka hoitaa tarpeellisen laskutoimituksen paljon nopeammin:
lngAika = 220 lngTunnit = lngAika \ 60 lngMinuutit = lngAika Mod 60 MsgBox "Olet pelannut " & lngTunnit & " tuntia ja " & lngMinuutit & " minuuttia."
Selitettynä jokseenkin näin:
\ = kuinka monta kertaa jälkimmäinen luku mahtuu edelliseen lukuun
Mod = poistetaan jälkimmäinen luku edellisestä luvusta niin kauan kunnes lopullinen luku on pienempi kuin jälkimmäinen luku
Tavallaan siis toistensa vastakohdat. Toivottavasti tuosta sepustuksesta on apua.
Huom! Jos otetaan sekuntit mukaan, niin:
lngAika = 527893 lngTunnit = lngAika \ 3600 lngMinuutit = (lngAika Mod 3600) \ 60 lngSekuntit = lngAika Mod 60
Muuten minuuteista tulee julmettoman suuria.
Kiitos avusta
Aihe on jo aika vanha, joten et voi enää vastata siihen.