Eli haluaisin että pelissä olisi laskurit päiviä ja kuukausia varten. Nyt on kello joka laskee tuntien kulumista.
If Time > 23 Then Time = 0 : Day = Day + 1
Joo toimiihan se noinkin. Mutta kun viikossa on 7 päivää ja jokaisella päivällä on oma nimensä jonka haluaisin myös tulostaa. Kuukausissa kun tuo päivien määrä vaihtelee reippaasti myös niin en ole onnistunut tekemää jotain edes suht yksinkertaista koodia jolla kertoa käyttäjälle seuraavasti.
"Maanantai, 19 joulukuuta 1243." Kyseessä on siis pelin oma aika eikä reaaliaika.
Sain tällaisen pelittämään mutta se vaati joka viikonpäivälle oman IF ehtonsa. Kuukausissa olikin sitten tekemistä. 12x kuukausi + että päiviä on 28-31 riippuen kuukaudesta.
Millään kahden rivin koodilla tätä tuskin saa tehtyä mutta omastani tuli miltei 40 rivinen joten olisiko kenelläkään tiedossa jotain hieman helpompaa tapaa? =)
Tunge taulukkoon nuo kuukausien nimet, ja kutsu sitten vaan aina kuukausi(12) jne.
Njoo, kuukaudet taulukkoon ihan jees. Viikonpäivät kanssa mutta se että kuukausissa on eri määrä päiviä aina tuottaa nyt ongelman. Jos esim. Tammikuun 31 menossa niin seuraava on Helmikuun 1 ja helmikuun 28 jälkeen pitäisi tulla Maaliskuun 1. Eli nuo päivien määrät/kuukausi pitäisi jotenkin simppelisti saada. Viikonpäivät voinee tunke omaan pikku koodiinsa. Siitä kun selviää yhdellä rivillä.
Tietty vastaus on taas jokin yksinkertainen mutta niin on mun olonikin nyt =)
No voihan ne päivien määrätkin kuukautta kohden taulukoida yhtälailla.
Päivien laskeminen on hankalaa juuri eripituisten kuukausien (ja karkausvuosien) takia. Minä ehkä sen vuoksi pitäisin kirjaa kaikista tiedoista (tunti, viikonpäivä, päivä, kuukausi, vuosi) ja lisäisin noita aina yhdellä tai pyöräyttäisin ympäri. Yhden tunnin lisäävä koodinpätkä voisi olla tämänkaltainen:
tunti% = (tunti% + 1) MOD 24 IF tunti% = 0 THEN vpaiva% = (vpaiva% + 1) MOD 7 paiva% = (paiva% + 1) MOD kkp%(kuukausi%) IF paiva% = 0 THEN kuukausi% = (kuukausi% + 1) MOD 12 IF kuukausi% = 0 THEN vuosi% = vuosi% + 1 END IF END IF END IF
Tunnit ovat 0 - 23, viikonpäivät 0 - 6, päivät 0 - 30 ja kuukaudet 0 - 11. Taulukko kkp% sisältää kunkin kuukauden päivien määrän. Jakojäännösten avulla laskurit menevät aina ympäri, kun korkein arvo on ohitettu. Karkauspäiviä tämä koodi ei ota huomioon.
QB:ssä ei ilmeisesti ole Date-funktiota, jolla VB:ssä saa näppärästi viikonpäivät, kuukaudet jne. Liki 30 vuotta vanhaan ohjelmoitavaan HP:n laskimeeni löytyi kalenterifunktio, joka pätee välillä 1.3.1700 - 28.2.2100. Funktiolla voi laskea päivien lukumäärän kahden eri päivämäärän välillä ja viikonpäivän annetulle päivämäärälle. Funktio on aika mutkikas. Jos kiinnostaa voin muokata sen QB:lle sopivaksi.
Joo, koska kyseessä on peli joka ajallisesti (pelissä siis) kestää 2-3 vuotta niin tuo karkauspäivä ei niin väliä välttämättä ole. Ja vaikka menisikin pitempään niin karkauspäiviä en kyllä muistanut edes ajatella =)
Tunnit ja viikonpäivät siis saa suht helpolla koodilla. Tuo kuukaudet ja niiden pituudet onkin sitten eri juttu. Jos sulla setä on jokin hyvä systeemi tähän tiedossa niin mielelläni kuulisin. Muistan sua sitten "lopputeksteissä" =)
Toinen vaihtoehto on keksiä kokonaan oma ajanlaskunsa pelille mutta tähän en välttämättä haluaisi ryhtyä.
Jooh, sainkin varsin näppärän vinkin toisaalta. Jos joku sattuu tappelemaan saman ongelman kanssa niin tässä yksi ratkaisu -> http://forum.pure-text.com/viewtopic.php?t=31
Kiitoksia taas kaikille =)
Aihe on jo aika vanha, joten et voi enää vastata siihen.