Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: QB, VB6: QBasic - ajan laskenta taaksepäin

Sivun loppuun

Chaosworm [18.04.2007 13:51:52]

#

Pitäisi saada tehtyä kello, joka näyttäisi jäljellä olevia sekunteja päivään 25.5.2007. Olisiko tuo mahdollista, ja jos olisi, niin voisiko joku kertoa, miten tuo tehdään.

TsaTsaTsaa [18.04.2007 14:02:22]

#

Irtoaisikohan ne sekunnit jotakuinkin näin:

Dim pvm as Date, erotus as Long
pvm = "25.5.2007"
erotus = DateDiff("s", Now, pvm)

Eli siis erotus-muuttujassa on se haluttu sekuntimäärä.

Chaosworm [18.04.2007 14:46:59]

#

kiitos. ei toiminut, väittää Type not defined tuohon ensimmäiseen as - käskyyn

TsaTsaTsaa [18.04.2007 14:49:33]

#

Ai oho, tämä olikin QB eikä VB. Sori.

hunajavohveli [18.04.2007 15:00:13]

#

Muuta päivämäärät sekunneiksi ja laske niiden erotus. Eli siis toisin sanoen lasket kuinka monta sekuntia noina päivämäärinä on kulunut vuoden alusta ja vähennät sekuntimäärät toisistaan.

TsaTsaTsaa [18.04.2007 16:45:21]

#

Jostain syystä rupesi kiinnostamaan tämä homma ja yritin jotain keksiä. En jaksanut bootata konetta windowsin puolelle, niin en voinut mitään testata, mutta tässä olisi tällaista:

DIM nyt AS STRING
DIM pvjaljella AS INTEGER, kk AS INTEGER, paiva AS INTEGER
DIM countdown AS INTEGER  ' Ehkä joutuu muuttamaan liukuluvuksi

nyt = DATE$         'Antaa nykyisen päivämäärän muodossa "kk-pp-vvvv"

kk = VAL(MID$(nyt, 1, 2))      ' Muuttaako VAL() merkkijonon luvuksi?
paiva = VAL(MID$(nyt, 4, 2))   ' Toivottavasti.

IF kk = 4 THEN
   pvjaljella = 25 + 30 - paiva
ELSE
   pvjaljella = 25 - paiva
END IF

countdown = 60 * 60 * 24 * pvjaljella - TIMER

PRINT "Sekuntteja vielä: " + countdown

Voi olla että jotakin ajatusvirheitäkin oli ja laskut on mitä sattuu. Ja tämä siis suunniteltu toimimaan fiksusti vain jos on huhti- tai toukokuu menossa eikä olla ohitettu kyseistä päivää.

Chaosworm [18.04.2007 20:42:39]

#

Rivi 16 elikkä countdown = 60 * 60 etc, väittää että Overflow.
Mikähän on vikana...?

Grez [18.04.2007 20:58:20]

#

jos muutat nuo dimmaukset Integer -> Long niin se voi auttaa jossain määrin. Tsatsatsaa on varmaan jo tottunut .NET käyttöön jossa Integer on 32 bittiä.

Antti Laaksonen [18.04.2007 21:04:13]

#

Sekuntimäärä on liian suuri INTEGER-muuttujaan, eli vaihda muuttujan countdown tyypiksi LONG. Lisäksi kertolaskussa täytyy kirjoittaa ainakin yhden luvun perään merkki &, joka on LONG-tyypin tunnus (esim. 60& * 60 * 24).

Chaosworm [18.04.2007 21:17:21]

#

Grez kirjoitti:

Chaosworm on varmaan jo tottunut .NET käyttöön jossa Integer on 32 bittiä.

juu. Kiitos.
Ja kiitos muillekkin, nyt veljeni saa tietää sekunnin tarkan ajan Húrinin Lasten ilmestymiseen

Grez [18.04.2007 21:39:20]

#

näköjään olin sekoillut kuka oli kirjoittanut mitäkin..

Chaosworm [18.04.2007 21:44:01]

#

olen minäkin tottunut siihen :) se ei vaan tullut mieleen aikaisemmin.


Sivun alkuun

Vastaus

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

Tietoa sivustosta