Konvertieren des Militärzeitformats (hhmm) in das Zeitformat (hh:mm)<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Ich muss die Militärzeit im hhmm-Format konvertieren, z. B. 1432 oder 725 in das hh: mm-Format, z. B. 14:32 in 7:25. Gibt es eine einfache Formel, die die Konvertierung durchführen kann, oder sollte ich dafür ein Skript verwenden?Danke.
Betreff: Konvertieren des Militärzeitformats (hhhh) in das Zeitformat (hh:mm)Es klappt! Vielen Dank. Ich habe so viel gelernt, indem ich mir nur die von Ihnen vorgeschlagenen Formeln angesehen habe!Betreff: Konvertieren des Militärzeitformats (hhhh) in das Zeitformat (hh:mm)Meine erste Frage ist, wenn die Länge des Eingabezeitwerts weniger als 4 Zeichen beträgt, sollte man davon ausgehen, dass auf der linken Seite der Militärzeit Nullen (0) fehlen?Wenn dies der Fall ist, schlage ich die folgende Lösung vor; Es füllt den Wert mit führenden Nullen auf und führt dann die Konvertierung durch.
standard = Substr( "00", Length( Char( :Military ) ) - 1 ) ||
Char( :Military );
Num( Substr( Char( :standard ), -2 ) ) * 60
+Num(
Substr(
Char( :standard ),
1,
(Length( Char( :standard ) ) - 2)
)
) * 3600;
Betreff: Konvertieren des Militärzeitformats (hhhh) in das Zeitformat (hh:mm)Ich habe versucht, diesen Code zu verwenden, um eine Zeichenfolge in ein Zeitformat (hh: mm) zu konvertieren.
Num( Substr( Char( :Military ), -2 ) ) * 60 + Num(
Substr( Char( :Military ), 1, (Länge( Char( :Military ) ) - 2) )
) * 3600
Mir wurde jedoch klar, dass die Zeichenfolge nicht konvertiert wird, wenn sie nur aus zwei Ziffern besteht. Wenn es beispielsweise 26 ist, wird es nicht in 00:26 umgewandelt. Eine 3-stellige Zeichenfolge funktioniert jedoch gut (100 wird zu 1:00 Uhr)
Wie ist das so?Betreff: Konvertieren des Militärzeitformats (hhhh) in das Zeitformat (hh:mm)Ich habe Ihren Code in den Formelabschnitt des neuen Felds gepostet, das Feld in den Namen meiner Datensatzspalte geändert, und es funktioniert perfekt!
Num( Substr( Char( :Military ), -2 ) ) * 60 + Num(
Substr( Char( :Military ), 1, (Length( Char( :Military ) ) - 2) )
) * 3600
Vielen Dank!
Betreff: Konvertieren des Militärzeitformats (hhhh) in das Zeitformat (hh:mm)Hallo Jim,
Wie verwende ich dieses Skript? Welche Variablen musste ich ändern?
Dann ist der Name des Datensatzes "transaction_data" und der Name der Spalte, die die Militärzeit enthält, ist "DAY" (transaction_data:DAY).
Also, wie soll ich diese 2 Variablen in Ihrem Skript ersetzen und ausführen?
Sorry für so eine Noob-Frage.
Betreff: Konvertieren des Militärzeitformats (hhhh) in das Zeitformat (hh:mm)Wie wäre es mit einer Umstellung von Military Time auf Regular?
Betreff: Konvertieren des Militärzeitformats (hhhh) in das Zeitformat (hh:mm)Noch ein weiterer Ansatz, der Zeichenfolgen vollständig vermeidet:
dt << New Column( "time",
Numeric,
"Continuous",
Format( "hr:m", 12 ),
Formula( Floor( :Military / 100 ) * 3600 + Mod( :Military, 100 ) * 60 )
);
Betreff: Konvertieren des Militärzeitformats (hhmm) in das Zeitformat (hh:mm)Jim, deine Lösung hat perfekt funktioniert. Mir gefällt, dass alles in der numerischen Form geblieben ist. Vielen Dank!
Betreff: Konvertieren des Militärzeitformats (hhmm) in das Zeitformat (hh:mm)Byron, vielen Dank für Ihre Anleitung.Ihre vorgeschlagene Methode funktioniert; die Variable bleibt jedoch im Zeichenzustand.
Ich habe Ihr Skript für zukünftige Spezialfälle gespeichert!
Betreff: Konvertieren des Militärzeitformats (hhhh) in das Zeitformat (hh:mm)Hier ist eine andere Möglichkeit, dasselbe zu tun, was Bryon zeigt.Meine Version geht direkt zu einem numerischen Zeitwert, anstatt einen Zeichenwert zu erstellen, der dann eingegeben wird.
Namen standardmäßig hierher ( 1 ) ;
// Erstellen Sie eine Beispieldatentabelle mit einigen Militärzeiten.....
// Die Spalte kann entweder numerisch oder zeichenhaft sein...die Konvertierung
// Formel behandelt beides
dt = Neue Tabelle ( "Ohne Titel 3" , Zeilen hinzufügen ( 2 ) , Neue Spalte ( "Militär" , Numerisch , "kontinuierlich" , Format ( "Am besten" , 12 ) , Werte einstellen ( [ 1421 , 923 ] ) ) ) ;
// Die wait()-Funktionen sind nur dazu da, einen dramatischen Effekt hinzuzufügen 
Warten ( 2 ) ;
// Füge eine neue Spalte hinzu, um die konvertierten Zeiten aufzunehmen
// Verwenden Sie ein Zeitformat, da die Konvertierung erstellt wird
// ein Wert, der die Anzahl der Sekunden seit Mitternacht ist
dt << Neue Spalte ( "Zeit" , Numerisch , "kontinuierlich" , Format ( "hr:m" , 12 ) ) ;
Warten ( 2 ) ;
// Alle Zeilen durchlaufen und die Konvertierung durchführen
// Die Formel funktioniert als Spaltenformel, indem sie einfach entfernt wird
// die ":time="
Für jede Reihe (
: Zeit = Anz ( Substr ( Verkohlen ( : Militär ) , - 2 ) ) * 60 +
Anz ( Substr ( Verkohlen ( : Militär ) , 1 , ( Länge ( Verkohlen ( : Militär ) ) - 2 ) ) ) * 3600
) ;
Betreff: Konvertieren des Militärzeitformats (hhhh) in das Zeitformat (hh:mm)Es gibt wahrscheinlich einen einfacheren Weg, dies zu tun; das funktioniert aber recht gut.
Schritt 1
Repeat( "0", 4 - Länge( Char( :Start ) ) ) || Char( :Start )
Macht die Startnummer zu einem 4-stelligen Zeichen, das mit Nullen gefüllt ist (dies ist auch praktisch für Postleitzahlen)
Schritt 2
Links( :Schritt 1, 2 ) || ":" || Rechts (:Schritt 1, 2)
Fügt einen Doppelpunkt zwischen Stunden und Minuten ein
Schritt 3
Format( Informat( :Char 24 Std Zeit, "h:m" ), "h:m" )
Diese Formel nimmt das Zeichen 24-Stunden-Zeit und wandelt es in die Anzahl der Sekunden nach Mitternacht um, dann wandelt es die Sekunden in 12-Stunden-Zeit um.
Informat wertet eine Zeichenfolge aus und gibt eine Zahl zurück
format wertet einen numerischen String aus und gibt ein Zeichen zurück
| Start |
Schritt 1 |
Schritt 2 |
Schritt 3 |
| 3 |
0003 |
00:03 |
00:03 Uhr |
| 30 |
0030 |
00:30 |
12:30 UHR |
| 1130 |
1130 |
11:30 Uhr |
11:30 UHR |
| 1830 |
1830 |
18:30 |
6:30 ABENDS |
........
oder Sie könnten alles in einem "einfachen" Schritt mit einer Formel erledigen
Format(
Informat(
Left( Repeat( "0", 4 - Length( Char( :Start ) ) ) || Char( :Start ), 2 ) || ":" ||
Right( Repeat( "0", 4 - Length( Char( :Start ) ) ) || Char( :Start ), 2 ),
"h:m"
),
"h:m"
);
Ich bewahre eine Sammlung heftiger Formeln auf, die für spezielle Fälle recycelt werden.