UnixZeit in MenschenLesbareZeit (FileTime)

Übersicht BlitzMax, BlitzMax NG Codearchiv & Module

Neue Antwort erstellen

simi

Betreff: UnixZeit in MenschenLesbareZeit (FileTime)

BeitragSo, Okt 30, 2005 20:12
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich hab mal eine Funktion geschrieben, welche die UnixZeit (wir bei FileTime zurückgegeben) in die normale Datums und Zeitform umwandelt... Ich hab dabei auch die Datumsarithmetikfunktionen von TheShadow benutzt (Dankeschön, waren echt nützlich Wink)......

Code: [AUSKLAPPEN]
Function ConvertDate:String(time)   
   Local x,julian,v1,v2,v3,v4,v5,hour:String,minute:String,day:String
   Local day_name:String,month:String,year:String,secs:String

   julian = Floor(time/86400)+2440588

   'Datum Berechnen
   v1=julian+68569
   v2=(4*v1)/146097
   v1=v1-(146097*v2+3)/4
   v3=(4000*(v1+1))/1461001
   v1=v1-(1461*v3)/4+31
   v4=(80*v1)/2447
   v5=v4/11
   
   day      =v1-(2447*v4)/80';If tag.length < 2 Then tag = "0"+tag
   month      =v4+2-(12*v5);If month.length < 2 Then month = "0"+month
   year      =100*(v2-49)+v3+v5
   
   Select julian Mod 7
      Case 0
         day_name = "Mo"
      Case 1
         day_name = "Di"
      Case 2
         day_name = "Mi"
      Case 3
         day_name = "Do"
      Case 4
         day_name = "Fr"
      Case 5
         day_name = "Sa"
      Case 6
         day_name = "So"
   End Select


   'Zeit Berechnen
   time = (time Mod 86400) + 3600

   hour      =Int(Floor(time / 3600));time = time-Int(hour)*3600
   minute   =Int(Floor(time/60));If minute.length < 2 Then minute = "0"+minute
   secs      =Int(Floor(time-Int(minute)*60));If secs.length < 2 Then secs = "0"+secs
   
   
   
   'Sommerzeit in Normalzeit korrigieren
   If (Int(month) > 3) And (Int(month) < 10) Then hour = String(Int(hour)+1)
   
   If (month = "03") And (Int(day)>24) Then
      For x = 25 To 31
         If (((julian-Int(day)+x) Mod 7) = 6) Then
            If (Int(day)-x) >= 0 Then hour = String(Int(hour)+1);Exit
         End If
      Next
   End If
   

   If (month = "10") And (Int(day)<25) Then hour = String(Int(hour)+1)
   If (month = "10") And (Int(day)>24) Then
      For x = 25 To 31
         If (((julian-Int(day)+x) Mod 7) = 6) Then
            If Int(day)-x < 0 Then hour = String(Int(hour)+1);Exit
         End If
      Next
   End If
   If hour.length < 2 Then hour = "0"+hour


   Return day+"."+month+"."+year+" "+day_name+","+hour+":"+minute+":"+secs
End Function


cya simi

=> http://unixzeit.joerg-spruegel.de/index.php <= Zeitumwandler
=> http://de.wikipedia.org/wiki/Unix-Zeit <= Unix-Zeit

Garfield

Betreff: Hervorragend!

BeitragSo, Aug 06, 2017 19:14
Antworten mit Zitat
Benutzer-Profile anzeigen
Toll das es dieses Forum noch gibt!
Das ist ein Super-Codeschnipsel, hab ich gerade gebraucht für FileTime.....

Danke
BlitzPlus|BMax|BMax-GUI -- Sony VAIO Win7 * MacBookPro Sierra

Neue Antwort erstellen


Übersicht BlitzMax, BlitzMax NG Codearchiv & Module

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group