Vaikea miinus lasku

laskelmoija

Olen tekemässä ohjelmaa joka laskee kahdesta eri kellonajasta erotuksen siis että kauanko kyseiseen aikaan on aikaa.

Esim. jos kello on tällä hetkellä 8:00 ja halutaan laskea kauanko on aikaa että kello on 9:00, niin kyllähän ohjelmani sen osaa laskea ihan normaalilla miinus laskulla, mutta eri juttu onkin sitten jos aika on jo mennyt eli käännetääs tuo juttu toisinpäin:
Jos kello on tällä hetkellä 9:00 ja halutaan laskea kuinka pitkä aika on että kello on 8:00, niin ohjelmani vinksahtaa täysin ja näyttää että kello kahdeksaan aamulla on tasan tunti aikaa vaikka eihän se pidä paikkaansa joten miten tuon saisi toimimaan siten että se osaa laskea oikein jo menneenkin ajan eikä vain tulevaa?

3

524

    Vastaukset

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • kokeile tota

      TulevaAika
      AikaNyt
      AikojenErotus?

      if(TulevaAika < AikaNyt) AikojenErotus=(TulevaAika 12)-AikaNyt
      else AikojenErotus=TulevaAika-AikaNyt

      • laskelmoija

        En saa tuota koodiasi toimimaan sitten millään.
        En tajua missä vika voisi olla?

        Dim AikojenErotus As Date

        If (txtAika.Text < Time) Then
        AikojenErotus = (txtAika.Text 12) - Time
        Else
        AikojenErotus = txtAika.Text - Time
        End If

        Virheilmoitus on "Run-time error '13': Type mismatch" ja se näyttää sitä ajasta riippuen eli siis jos aika on mennyt niin virhe on silloin tässä "AikojenErotus = (txtAika.Text 12) - Time"
        ...ja jos aika on tuleva niin virhe aiheutuu tässä "AikojenErotus = txtAika.Text - Time".


      • laskelmoija
        laskelmoija kirjoitti:

        En saa tuota koodiasi toimimaan sitten millään.
        En tajua missä vika voisi olla?

        Dim AikojenErotus As Date

        If (txtAika.Text < Time) Then
        AikojenErotus = (txtAika.Text 12) - Time
        Else
        AikojenErotus = txtAika.Text - Time
        End If

        Virheilmoitus on "Run-time error '13': Type mismatch" ja se näyttää sitä ajasta riippuen eli siis jos aika on mennyt niin virhe on silloin tässä "AikojenErotus = (txtAika.Text 12) - Time"
        ...ja jos aika on tuleva niin virhe aiheutuu tässä "AikojenErotus = txtAika.Text - Time".

        Joo ei mitään... ihan toimiva ja hyvä koodi se olikin :)
        Minussa se vika oli eikä koodissa, kiitos paljon avusta!


    Ketjusta on poistettu 0 sääntöjenvastaista viestiä.

    Luetuimmat keskustelut

    1. Medvedev: Suomi tuhoutuu ydinsodassa ensimmäisenä

      Venäjän ydinaseilla on lyhyin matka Suomeen, joten ydinsodassa Suomi tuhoutuu heti sodan alkuminuuteilla, muilla mailla
      Maailman menoa
      602
      2154
    2. Sinä. Just sinä.

      Palataan ajassa taaksepäin vuosi tai kaksi. Mitä tekisit toisin jos voisit?
      Ikävä
      108
      1088
    3. Hotellille löytyi ostaja....

      Tämän päivän Kainuun Sanomissa oli uutinen, että pesänhoitajan mukaan Hotelli Kainuu myydään ensiviikolla. Hieno homma,
      Kuhmo
      20
      1032
    4. Saana airola ja. muusikko spekulaatiota

      Saara airolan kirja muusikko mies. Oisko redrama tai lauri tähkä? Saana oli 13 v vuonna 2014 Tekoäly sanoo : tähkä Julki
      Yhteiskunta
      4
      897
    5. Onko se loukkaavaa

      Kun joka kerta tuijotan sun peppua. En mahda sille mitään, että se vangitsee katseeni. Pohdin vain että ei minusta ole k
      Ikävä
      101
      845
    6. Miten kuvaisit tunteitasi

      tällä hetkellä?
      Ikävä
      81
      802
    7. Onko kaivattusi seinäruusu?

      Kun hän saapuu paikalle, huomaako kukaan, vai kääntyvätkö päät? Onko se hyvä vai huono juttu? Oletko sinä huomattu vai
      Ikävä
      50
      749
    8. Jos saisit palata takaisin johonkin vuoteen

      Mikä vuosi se olisi? Ja mitä siinä hetkessä tapahtuisi?
      Ikävä
      89
      742
    9. Tiedätkö kaivattusi musiikkimaun?

      Minkälaisesta musiikista hän pitää?
      Ikävä
      63
      725
    10. Moi, olen Lampunhenki

      Kerro toivomuksesi🏺
      Ikävä
      65
      563
    Aihe