Buchempfehlung
Mikrocomputertechnik mit Controllern der Atmel AVR-RISC-Familie
Mikrocomputertechnik mit Controllern der Atmel AVR-RISC-Familie
Umfassend, aber leicht verständlich führt dieses Buch in die Programmierung von ATMEL AVR Mikrocontrollern ein. [Mehr Infos...]
FreeBASIC-Chat
Es sind Benutzer im FreeBASIC-Chat online.
(Stand:  )
FreeBASIC bei Twitter
Twitter FreeBASIC-Nachrichten jetzt auch über Twitter erhalten. Follow us!

Code-Beispiel

Code-Beispiele » Sonstiges

Millisekunden In Std,Min,Sek Umrechnem und andersrum auch

Lizenz:Erster Autor:Letzte Bearbeitung:
GPLMitgliedjakidomi 06.11.2008
declare function mims (millisekunden as uinteger,stunden as integer,minuten as integer,sekunden as integer,wie as integer) as integer
function mims (millisekunden as uinteger,stunden as integer,minuten as integer,sekunden as integer,wie as integer) as integer
    dim as double g1,g2,g3,g4,mil4
    dim as string mintemp,mintemp2,mintemp3
    dim as integer mil88
    select case wie
    case 1
        if wie =1 then stunden=0:minuten=0:sekunden=0
        g1=millisekunden/1000
        g2=g1/60
        do:data1+=1
        mintemp3+=chr(asc(str(g2),data1))
        loop until chr(asc(str(g2),data1+1))="." or asc(str(g2),data1+1)=0
        if asc(str(g2),data1+1)=0 then data1=0
        mil=val(mintemp3)
        datab=data1+1:mintemp="":mintemp2="1":do:datab+=1
            mintemp+=chr(asc(str(g2),datab))
            mintemp2+="0"
        loop until asc(str(g2),datab+1)=0
        minuten=val(mintemp3)
        sek=(60*((val(mintemp)*100)/val(mintemp2)))/100
        sekunden=sek
        if minuten>60 then
            g1=minuten/60:data1=0:mintemp3=""
            do:data1+=1
                mintemp3+=chr(asc(str(g1),data1))
            loop until chr(asc(str(g1),data1+1))="." or asc(str(g1),data1+1)=0
            if asc(str(g1),data1+1)=0 then data1=0
            stunden=val(mintemp3)
            datab=data1+1:mintemp="":mintemp2="1":do:datab+=1
                mintemp+=chr(asc(str(g1),datab))
                mintemp2+="0"
            loop until asc(str(g1),datab+1)=0
            mil4=(val(mintemp)*100)/val(mintemp2)
            minuten=(60*mil4)/100
        endif
        return millisekunden
    case else
    if stunden>0 then minutentemp=stunden*60 else minutentemp=0
    minuten2=minuten+minutentemp
    sekunden2=(minuten2*60)+sekunden
    millisekunden=sekunden2*1000
    return millisekunden
    end select
end function

Beispiel:
mil=mims(150000,std,min,sek,1)
Die 1 in der Funktion steht dafür das die Ausgabe in std/min/sek angegeben wird, sonst in msek.

Warum so umständlich?

Function mims (ByRef millisekunden As UInteger, _
  ByRef stunden As Integer, _
  ByRef minuten As Integer, _
  ByRef sekunden As Integer, _
  ByVal wie As Integer) As Integer
  If wie = 1 Then
    sekunden = millisekunden \ 1000
    If sekunden Then millisekunden Mod= (sekunden * 1000)
    minuten = sekunden \ 60
    If minuten Then sekunden Mod= (minuten * 60)
    stunden = minuten \ 60
    If stunden Then minuten Mod= (stunden * 60)
  Else
    millisekunden = ((stunden*3600)+(minuten*60)+sekunden)*1000
  End If
  Return millisekunden
End Function

Dim As Integer ms,std,min,sek
ms = 11500100
Print mims(ms, std, min, sek,1)
Print std, min, sek, ms
Sleep
End

;) Volta


Attachments zum Code-Beispiel
Quelltextmims.biQuelldateiMitgliedjakidomi17.08.08

Zusätzliche Informationen und Funktionen
  • Das Code-Beispiel wurde am 17.08.2008 von Mitgliedjakidomi angelegt.
  • Die aktuellste Version wurde am 06.11.2008 von Mitgliedjakidomi gespeichert.
  Bearbeiten Bearbeiten  

  Versionen Versionen