Eli tarvitsen projektiini ajan muuntamista sekunniksi jne. Sen onnistuin omin avuin tekeemään.
Ei sain sekunneiksi:
sekunti = sekunti + Hour(Time) * 3600
sekunti = sekunti + Minute(Time) * 60
sekunti = sekunti + Second(Time)
Minuuteiksi sekunnit saadaan näin:
minuutti = sekunti / 60
Tunneiksi vastaavasti:
tunti = minuutti / 60
Eli time$ formaatista (22:19:12) olen saanut noin paljon nyt purettua, mutta kysymys kuuluukin. Miten saan ajan muutettua takaisin tuohon formaattiin 22:19:12?
Esim jos tekisi ohjelman joka katsoo kuinka kauan on ollut yhteensä koko käyttöaikana päällä, niin sehän pistää aina käynnistyksen ja sammutuksen logiin ja siitä sitten laskee sen. Aika vaikeaahan on plussata 22:19:12 + 13:13:19 esim. Joten kai se pitää aluksi muuntaa sekunneiksi ja sitten plussata ja sitten muuttaa takaisin formaattiin. Jos nyt joku tajuaa mitä haen takaa niin apu on tarpeen.
Aikoja ei oikeastaan tarvitse muuttaa sekunneiksi, sillä funktio DateDiff pystyy laskemaan kahden ajan (tyyppiä Date) eron suoraan sekunneissa. Sen sijaan sekunneista tunneiksi, minuuteiksi ja sekunneiksi menee esimerkiksi kokonaislukujakolaskun avulla:
Dim aika1 As Date, aika2 As Date, ero As Long 'aloitus- ja lopetusaika aika1 = "6.4.03 12:50:45" aika2 = "6.4.03 17:12:15" 'aikojen ero sekunneissa ero = DateDiff("s", aika1, aika2) Dim tunnit As Long, minuutit As Long, sekunnit As Long 'lasketaan tunnit, minuutit ja sekunnit kokonaisjakolaskun avulla tunnit = ero \ 3600 ero = ero - tunnit * 3600 minuutit = ero \ 60 ero = ero - minuutit * 60 sekunnit = ero 'näytetään päälläoloaika MsgBox "Kone on ollut päällä " & tunnit & " tuntia, " & minuutit & " minuuttia ja " & sekunnit & " sekuntia."
hei... toi onki kätevä juttu.. kiitos
Oletetaan, että olisin tekemässä sellaista uptime ohjelmaa, että kun käynnistän ohjelman ja painan nappia Start niin ohjelma ottaa talteen sen hetken päivämäärän ja ajan. Kun painan stop niin se ottaa taas päivämäärän ja ajan ja ne menee sitten tiedostoon.
Onko esimerkkiä ja hyvää ideaa miten kannattaisi tiedot tallentaa tiedostoon ja niin, että olisi helppo niitä sieltä hakea.
Esim miten pystyisin hakemaan pisimmän ajan kun kone on ollut päällä ja lyhimmän.
Aihe on jo aika vanha, joten et voi enää vastata siihen.