Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: QB: Aikojen erot

Sivun loppuun

Latska [30.08.2004 20:26:11]

#

Niin... Olisiko mitenkään mahdollista saada jonkin sortin aikojen vähennys QB-ohjelmaan. Valmista koodia en tietenkään ruinaa, koska se on "laitonta" ;)

Se tulis erääseen laskuriin jonka aijon koittaa laittaa koodivinkiksi.

Esim. Aloitus: 19:20:12 Lopetus 19:58:01.

hunajavohveli [30.08.2004 20:33:22]

#

No ajanhan saa selville esim. keskiyöstä kuluneiden sekuntien määränä (TIMER-funktio), tai sitten saa tuollaisen 19:20:12 -muotoisen ajan (TIME$-funktio).
TIMER-ajathan on helppo vähentää toisistaan, mutta joudut hieman leikkimään merkkijonofunktioiden kanssa, jos aiot vähentää toisistaan TIME$-aikoja. Tätäkö nimenomaan tarkoitit?

Latska [30.08.2004 20:43:10]

#

hunajavohveli kirjoitti:

No ajanhan saa selville esim. keskiyöstä kuluneiden sekuntien määränä (TIMER-funktio), tai sitten saa tuollaisen 19:20:12 -muotoisen ajan (TIME$-funktio).
TIMER-ajathan on helppo vähentää toisistaan, mutta joudut hieman leikkimään merkkijonofunktioiden kanssa, jos aiot vähentää toisistaan TIME$-aikoja. Tätäkö nimenomaan tarkoitit?

Juu... Minulla on siinä jo tuollainen TIMER-homma, mutta näyttää varsin ihmeelliseltä tulos:

Aikaa meni 363.8544 sekuntia.

Enkä halua vieläkään valmista koodia. Haluaisin vain tietää, että miten pitkälle pitäisi niiden merkkijonomutujen kanssa mennä.

hunajavohveli [30.08.2004 20:59:39]

#

No minä kyllä suosittelisin, että mittaat edelleen ajan TIMER-funktiolla, ja lasket sillä saaduilla tuloksilla aikojen eron, mutta olennaista tässä lienee nyt siis se, ettet haluaisi näyttää aikaa tuolla lailla sekunteina?
Periaatteessa sinun pitäisi vain osata muuntaa tuo sekuntimäärä muotoon "tunnit-minuutit-sekunnit". Olen kyllä tehnyt tuohon valmista koodia, mutta jos sitä kerran halua...

Latska [30.08.2004 21:14:12]

#

No ainahan valmiille koodille käyttöä olisi...

[Kyllä käänteinen psykologia on mahtava asia!]

hunajavohveli [30.08.2004 21:21:40]

#

Kirjoitin tosiaan ihan yksinkertaisen pätkän tuosta joskus keskusteluun, mutta vaikka kuinka kokeilin hakua, niin en onnistunut löytämään.

sec = 3780
CLS
sek = sec - tun * 3600 - min * 60
tun = INT(sec / 3600)
min = INT(sec / 60) - tun * 60

PRINT tun
PRINT min
PRINT sek

Tuommoisen uuden tein n. minuutissa, kun en kerkiä enää tänään koodata, joten toivottovasti tuo toimii kunnolla.

Latska [30.08.2004 21:30:11]

#

Enköhän minä jotain tuosta onnistu sorvaamaan. To toimii kuten pitää. Kiitos kovasti. Toivattasti sitä minun koodin tapaista pätkää ei ole valmiina siellä vinkeissä..

Jaska [30.08.2004 21:37:27]

#

Muista ottaa myös huomioon vuorokauden vaihtumiset ettei keskiyöllä ajettu ohjelma tuota kummallisia tuloksia.

hunajavohveli [31.08.2004 14:21:05]

#

Tuossa koodinpätkässä oli muuten yksi asia pahasti pielessä, eli tuo ei minusta pitäisi toimia kunnolla:

sec = 3780
CLS
tun = INT(sec / 3600)
min = INT(sec / 60) - tun * 60
sek = sec - tun * 3600 - min * 60

PRINT tun
PRINT min
PRINT sek

Tein tuohon tuommoisen korjauksen. Nyt kaiken pitäisi olla kunnossa. Ja vuorokauden vaihtuminen on tosiaan hyvä ottaa myös huomioon. Sen voit yrittää vaikka itse koodata.

Wukkopi [31.08.2004 14:46:18]

#

sek = TIMER MOD 60
tun = TIMER / 60 / 60
min = (TIMER / 60) MOD 60
PRINT tun; min; sek

minä ainakin tämänlaisen ajanmittaus systeemin tekisin...

edit: Tappelin kooditagin kanssa (edit: edit: siis tällä ei voi laskea kuinka kauan on mennyt se laskee sen hetkisen ajan, mutta tuota voisi soveltaa jotenkin jos hoksaa minun ajattelutapani...)

hunajavohveli [31.08.2004 14:58:09]

#

Joo, onhan toi modulus totta kai parempi tapa. Nyt kun sen mainitsit, niin itsekin käyttäisin ennemmin sitä. Ei tullut eilen mieleen, kun piti vain äkkiä värkätä jotain. :P


Sivun alkuun

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta