Zuviel Werbung? - > Hier kostenlos beim SPS-Forum registrieren

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 16

Thema: Date To String

  1. #1
    Registriert seit
    17.12.2008
    Beiträge
    6
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo,
    hat jemand eine Funktion um von DATE zu STRING zu wandeln und wider zurück.
    Leider habe ich nur das Format DATE. )-:

    Danke für Hilfe

    Gruß
    Ottokar
    Zitieren Zitieren Date To String  

  2. #2
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.727
    Danke
    398
    Erhielt 2.404 Danke für 2.002 Beiträge

    Standard

    Hallo,
    und dein Date-Format entspricht wahrscheinlich nicht dem aktuellen Tagesdatum ...? Wenn doch, dann wäre es relativ einfach - wenn nicht, dann mußt du dir die Date-Variable erstmal in TT und MM und JJJJ umrechnen.
    Ich hätte dafür und auch für das Umwandeln in String Code-Schnipsel - allerdings nur in SCL. die du dann selber noch zusammenbauen müßtest. Kannst du damit etwas anfangen ?

    Gruß
    LL

  3. #3
    ottokar24 ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    17.12.2008
    Beiträge
    6
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    ja gerne.
    gruß
    ottokar

  4. #4
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.727
    Danke
    398
    Erhielt 2.404 Danke für 2.002 Beiträge

    Standard

    Also denn ...

    Der folgende Code ist eine FC und wandelt einen DATE in seine Einbestandteile :
    Code:
    FUNCTION FC431 : VOID                      // UP Date nach Tag, Monat, Jahr etc. umwandeln
    Title   = 'UP Date nach TTMMJJ umwandeln'  
     
    VAR_INPUT 
       IN_Date : DATE ;                 // Datum für Umwandlung 
          i_Date AT IN_Date : INT ;
    END_VAR
    VAR_IN_OUT 
    END_VAR
    VAR_OUTPUT
       Jahr              : INT ;       // Jahr des Vorgabe-Date's
       Monat             : INT ;       // Monat des Vorgabe-Date's
       Tag               : INT ;       // Tag des Vorgabe-Date's
       Wochentag         : INT ;       // Wochentag des Vorgabe-Date's  [1=So - 7=Sa]
       Schaltjahr        : INT ;       // Schaltjahr des Vorgabe-Date's
       Jahrestag         : INT ;       // Tag im Jahr des Vorgabe-Date's
       Kalenderwoche     : INT ;       // Kalenderwoche des Vorgabe-Date's
    END_VAR
    VAR_TEMP
       Anz_SJ : INT ; 
       Diff_J : INT ;
       JTag   : INT ;
    END_VAR
     
     
    BEGIN
       Jahr := (i_Date / 365) + 1990 ;
       Schaltjahr := 0 ; IF (Jahr MOD 4) = 0 THEN Schaltjahr := 1 ; END_IF ;
       
       Diff_J := Jahr - 1990;
       Anz_SJ := Diff_J / 4 ;
       Jahrestag := i_Date - Anz_SJ - (Diff_J * 365) ;
       Wochentag := (i_date MOD 7) + 1 ;
       Kalenderwoche := (Jahrestag + 7 + 3 - Wochentag) / 7 ;
      
       JTag := Jahrestag ;
       IF (JTag > 0) AND (JTag <= 31) THEN 
          Monat := 1 ; Tag := JTag ;
       END_IF ; 
       JTag := JTag - 31 ;
       IF (JTag > 0) AND (JTag <= (28 + Schaltjahr)) THEN 
          Monat := 2 ; Tag := JTag ;
       END_IF ; 
       JTag := JTag - 28 - Schaltjahr ;
       IF (JTag > 0) AND (JTag <= 31) THEN 
          Monat := 3 ; Tag := JTag ;
       END_IF ; 
       JTag := JTag - 31 ;
       IF (JTag > 0) AND (JTag <= 30) THEN 
          Monat := 4 ; Tag := JTag ;
       END_IF ; 
       JTag := JTag - 30 ;
       IF (JTag > 0) AND (JTag <= 31) THEN 
          Monat := 5 ; Tag := JTag ;
       END_IF ; 
       JTag := JTag - 31 ;
       IF (JTag > 0) AND (JTag <= 30) THEN 
          Monat := 6 ; Tag := JTag ;
       END_IF ; 
       JTag := JTag - 30 ;
       IF (JTag > 0) AND (JTag <= 31) THEN 
          Monat := 7 ; Tag := JTag ;
       END_IF ; 
       JTag := JTag - 31 ;
       IF (JTag > 0) AND (JTag <= 31) THEN 
          Monat := 8 ; Tag := JTag ;
       END_IF ; 
       JTag := JTag - 31 ;
       IF (JTag > 0) AND (JTag <= 30) THEN 
          Monat := 9 ; Tag := JTag ;
       END_IF ; 
       JTag := JTag - 30 ;
       IF (JTag > 0) AND (JTag <= 31) THEN 
          Monat := 10 ; Tag := JTag ;
       END_IF ; 
       JTag := JTag - 31 ;
       IF (JTag > 0) AND (JTag <= 30) THEN 
          Monat := 11 ; Tag := JTag ;
       END_IF ; 
       JTag := JTag - 30 ;
       IF (JTag > 0) AND (JTag <= 31) THEN 
          Monat := 12 ; Tag := JTag ;
       END_IF ; 
      
    END_FUNCTION
    des weiteren baut dir der folgende Code-Schnipsel den String (bei mir im Format TT.MM.JJ)
    Code:
       hString := '' ; Datum_String := '' ;
       
       hString := RIGHT (IN:= INT_TO_STRING (IN:=100 + TT) , l:=2) ;    
         Datum_String := CONCAT (IN1:=Datum_String , IN2:=hString) ;
       hString := ':' ;    
         Datum_String := CONCAT (IN1:=Datum_String , IN2:=hString) ;
       hString := RIGHT (IN:= INT_TO_STRING (IN:=100 + MM) , l:=2) ;    
         Datum_String := CONCAT (IN1:=Datum_String , IN2:=hString) ;
       hString := ':' ;    
         Datum_String := CONCAT (IN1:=Datum_String , IN2:=hString) ;
       hString := RIGHT (IN:= INT_TO_STRING (IN:= JJ) , l:=2) ;    
         Datum_String := CONCAT (IN1:=Datum_String , IN2:=hString) ;
    Viel Spaß und Erfolg damit ...

    Gruß
    LL

  5. #5
    Registriert seit
    29.08.2007
    Beiträge
    213
    Danke
    42
    Erhielt 34 Danke für 23 Beiträge

    Standard

    Zitat Zitat von Larry Laffer Beitrag anzeigen
    Hallo,
    und dein Date-Format entspricht wahrscheinlich nicht dem aktuellen Tagesdatum ...? Wenn doch, dann wäre es relativ einfach -
    genau dieses problemhabe ich derzeit
    Ich muss das aktuelle SPS Datum in einen String TT.MM.JJJJ wandeln.

    könntest du mir einen Tipp geben wie das relativ einfach geht, danke

    van

  6. #6
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.727
    Danke
    398
    Erhielt 2.404 Danke für 2.002 Beiträge

    Standard


    Hallo van,
    genau das ist doch in meinem Beitrag in dem Beispiel realisiert - was fehlt dir noch ?

    Gruß
    LL

  7. #7
    Registriert seit
    04.02.2007
    Beiträge
    2.544
    Danke
    167
    Erhielt 731 Danke für 528 Beiträge

    Standard

    Bei so was kann man natürlich den Larry fragen, oder bei Ocsat nachsehen.
    „Wenn du ein Problem hast, versuche es zu lösen. Kannst du es nicht lösen, dann mache kein Problem daraus.“
    Siddhartha Gautama

  8. #8
    Registriert seit
    29.08.2007
    Beiträge
    213
    Danke
    42
    Erhielt 34 Danke für 23 Beiträge

    Standard

    @LL
    ich habe dein ursprungs posting so gedeutet das es da einen ganz einfachen weg gibt und dein scl code der harte weg ist

    habs aber mittlerweile selber hin bekommen, zwar nicht schön aber es funktioniert

    @jabba
    meinst du DT_TO_STRF? Die Funktion habe ich gerade auch gefunden, und ich habe jedes bit einzelnd aus dem DT gefummelt....
    Muss ich am Montag gleich mal testen.

    danke

    van

  9. #9
    Registriert seit
    04.02.2007
    Beiträge
    2.544
    Danke
    167
    Erhielt 731 Danke für 528 Beiträge

    Standard

    Zitat Zitat von van Beitrag anzeigen
    @jabba
    meinst du DT_TO_STRF? Die Funktion habe ich gerade auch gefunden, und ich habe jedes bit einzelnd aus dem DT gefummelt....
    Muss ich am Montag gleich mal testen.
    Ich hab jetzt nicht genau nachgesehen womit dies geht, aber ohne nachzusehen viel mir da direkt di OSCAT.LiB ein. Die Jungs machen tolle Arbeit und warum soll man das Rad neu erfinden.
    Mittlerweile hab ich für vieles meine eigenen Funktionen, aber hätte es die OSCAT schon früher gegeben hätte ich mir bestimmt einige Arbeit sparen können.

    Deshalb auch wenn an falscher Stelle, einen Dank an die Jungs der OSCAT-Fraktion.
    „Wenn du ein Problem hast, versuche es zu lösen. Kannst du es nicht lösen, dann mache kein Problem daraus.“
    Siddhartha Gautama

  10. Folgende 2 Benutzer sagen Danke zu jabba für den nützlichen Beitrag:

    dalbi (25.10.2009),gravieren (25.10.2009)

  11. #10
    Registriert seit
    19.06.2005
    Ort
    in Bayern ganz oben
    Beiträge
    1.360
    Danke
    188
    Erhielt 372 Danke für 290 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo jabba,

    Danke für die Blumen.

    Gruss Daniel
    Erfahrung ist eine nützliche Sache. Leider macht man sie immer erst kurz nachdem man sie brauchte...

    OSCAT.lib Step 7

    Open Source Community for Automation Technolgy

    SPS-Forum Chat (Mibbit) | SPS-Forum Chat (MIRC)

Ähnliche Themen

  1. Konstante String in Variable String schreiben
    Von sailor im Forum Simatic
    Antworten: 8
    Letzter Beitrag: 07.12.2009, 18:01
  2. Antworten: 13
    Letzter Beitrag: 24.09.2009, 12:54
  3. Ein String kopieren in einen anderen String
    Von CanYouHelpMe im Forum Simatic
    Antworten: 3
    Letzter Beitrag: 25.09.2008, 17:21
  4. String in Date&Time
    Von Stohstaky im Forum Simatic
    Antworten: 1
    Letzter Beitrag: 10.10.2007, 16:13
  5. Date to String in SCL
    Von ottohahn im Forum Simatic
    Antworten: 0
    Letzter Beitrag: 07.06.2006, 20:17

Lesezeichen

Berechtigungen

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