- SF800 Solar Speicher Tutorial         
Ergebnis 1 bis 5 von 5

Thema: Kalender und RTC

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    31.05.2009
    Beiträge
    270
    Ich habe so etwas für meine ATZ-Uhr gebraucht:


    Code:
    Lcdat 6 , 1 , "Noch " ; Str(tagerest) ; " Tage     "
    Lcdat 7 , 1 , Str(stundenrest) ; "Std. " ; Str(minutenrest) ; "Min. " ; Str(sekundenrest) ; "Sek.   "
    
    '_________________________________________________________________________________________
    
    Function Zeitdiff() As Long                                                     'Errechnet die Zeitdifferenz zwischen zwei Zeitpunkten in Sekunden
       Zeitdiff = 0
       Schalttag1 = 0
       Schalttag2 = 0
       '
       '----- Zaehlen der Sekunden seit Tagesbeginn ------
       Sek1 = Sekunde                                                               'Sekunden
       Sek2 = Sekunde_end
       '
       Temp1a = Minute * 60
       Sek1 = Sek1 + Temp1a                                                         'Minuten
       Temp2a = Minute_end * 60
       Sek2 = Sek2 + Temp2a
    
       Temp1a = Stunde * 3600
       Sek1 = Sek1 + Temp1a
       Temp2a = Stunde_end * 3600                                                   'Stunden
       Sek2 = Sek2 + Temp2a
    
       '
       '----- Speichern der Tage vor einem Monat ---------
       Monat12(1) = 0 : Monat12(7) = 181
       Monat12(2) = 31 : Monat12(8) = 212
       Monat12(3) = 59 : Monat12(9) = 243
       Monat12(4) = 90 : Monat12(10) = 273
       Monat12(5) = 120 : Monat12(11) = 304
       Monat12(6) = 151 : Monat12(12) = 334
       '
       '----- Berechnen der ganzen Tage seit Jahresbeginn -----
       Tag1 = Tag - 1
       Monat1 = Monat
       Tag1 = Tag1 + Monat12(monat1)
       '
       Tag2 = Tag_end - 1
       Monat2 = Monat_end
       Tag2 = Tag2 + Monat12(monat2)
       '
       '----- Jahreszahl ermitteln -----
       Jahr1 = Jahr
       Jahr2 = Jahr_end
       '
       '----- Ermitteln ob im aktuelle Jahr ein Schalttag war ---
       If Monat1 > 2 Then
          Temp1a = Jahr1 Mod 4 : Temp2a = Jahr1 Mod 100 : Temp1b = Jahr1 Mod 400
          If Temp1a = 0 And Temp2a <> 0 Then
             Schalttag1 = 1
          Elseif Temp1b = 0 Then                                                    'IF(Jahr1 MOD 4 = 0 AND Jahr1 MOD 100 <> 0) OR Jahr1 MOD 400 = 0 THEN
             Schalttag1 = 1
          End If
       End If
       If Monat2 > 2 Then
          Temp1a = Jahr2 Mod 4 : Temp2a = Jahr2 Mod 100 : Temp1b = Jahr2 Mod 400
          If Temp1a = 0 And Temp2a <> 0 Then                                        'IF(Jahr2 MOD 4 = 0 AND Jahr2 MOD 100 <> 0) OR Jahr2 MOD 400 = 0 THEN
             Schalttag2 = 1
          Elseif Temp1b = 0 Then
             Schalttag2 = 1
          End If
       End If
       '
       '----- Erechnen der Schalttage seit dem Jahre 1 -----
       Jahr1 = Jahr1 - 1
       Jahr2 = Jahr2 - 1
       Temp1a = Jahr1 \ 4 : Temp1b = Jahr1 \ 100 : Temp1c = Jahr1 \ 400
       Schalttag1 = Schalttag1 + Temp1a                                             'Schalttag1 = Schalttag1 +(Jahr1 \ 4) -(Jahr1 \ 100) +(Jahr1 \ 400)
       Schalttag1 = Schalttag1 - Temp1b
       Schalttag1 = Schalttag1 + Temp1c
    
       Temp2a = Jahr2 \ 4 : Temp2b = Jahr2 \ 100 : Temp2c = Jahr2 \ 400
       Schalttag2 = Schalttag2 + Temp2a                                             'Schalttag2 = Schalttag2 +(Jahr2 \ 4) -(Jahr2 \ 100) +(Jahr2 \ 400)
       Schalttag2 = Schalttag2 - Temp2b
       Schalttag2 = Schalttag2 + Temp2c
    
    
       '----- Berechnen der Zeitdifferenz -----
       'ZeitDiff = Sek2 - Sek1 +(Tag2 - Tag1 + Schalttag2 - Schalttag1) * 86400 +(Jahr2 - Jahr1) * 31536000
    
       Temp1b = Jahr2 - Jahr1
       Temp1b = Temp1b * 31536000
    
       Temp1a = Tag2 - Tag1
       Temp1a = Temp1a + Schalttag2
       Temp1a = Temp1a - Schalttag1
       Temp1a = Temp1a * 86400
    
       Temp2c = Sek2 - Sek1
    
       Zeitdiff = Zeitdiff + Temp1a
       Zeitdiff = Zeitdiff + Temp1b
       Zeitdiff = Zeitdiff + Temp2c
    
       Tagerest = Secdiff \ 86400
    
       Stundenrest = Tagerest * 86400                                               'StundenRest = INT(((SecDiff -(TageRest * 86400)) / 3600)
       Stundenrest = Secdiff - Stundenrest
       Stundenrest = Stundenrest \ 3600
    
       Temp1a = Tagerest * 86400                                                    'MinutenRest = INT(((SecDiff -(TageRest * 86400) -(StundenRest * 3600)) / 60)
       Temp1b = Stundenrest * 3600
       Minutenrest = Secdiff - Temp1a
       Minutenrest = Minutenrest - Temp1b
       Minutenrest = Minutenrest \ 60
    
       Temp1c = Minutenrest * 60                                                    'SekundenRest = SecDiff -(TageRest * 86400) -(StundenRest * 3600) -(MinutenRest * 60)
       Sekundenrest = Secdiff - Temp1a
       Sekundenrest = Sekundenrest - Temp1b
       Sekundenrest = Sekundenrest - Temp1c
    
    End Function
    Quelle> http://www.antonis.de/faq/progs/tagdiff.bas
    mfG
    Willi

  2. #2
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    17.02.2009
    Ort
    Aachen
    Beiträge
    1.181
    Danke für euere Hilfe.
    Auf die Idee mit der Unix-Zeit hätte ich wohl auch selbst kommen sollen

Ähnliche Themen

  1. Maya Kalender: Erste Anzeichen!
    Von radbruch im Forum Offtopic und Community Tratsch
    Antworten: 4
    Letzter Beitrag: 11.11.2012, 13:05
  2. [ERLEDIGT] iCloud und Thunderbird Kalender
    Von Ritchie im Forum Offtopic und Community Tratsch
    Antworten: 0
    Letzter Beitrag: 20.10.2012, 18:10
  3. Atmega2560 und RTC PCF8583
    Von hhopf im Forum AVR Hardwarethemen
    Antworten: 5
    Letzter Beitrag: 25.07.2008, 08:17
  4. RTC, mit Temperatursensor und 4 Alarmzeiten? Gesucht .. ^^
    Von bluelight_electronic im Forum Elektronik
    Antworten: 8
    Letzter Beitrag: 28.12.2005, 19:37
  5. Atmega8, RTC, Uhrzeit und Datum
    Von ronald im Forum AVR Hardwarethemen
    Antworten: 0
    Letzter Beitrag: 27.10.2005, 09:37

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

LiFePO4 Speicher Test