Stunde und Minute + Stunde und Minute
Moderator: Co-Administratoren
- joni-blue
- Beiträge: 1173
- Registriert: 04.01.2012, 12:20
- System: CCU
- Wohnort: Hannover
- Hat sich bedankt: 6 Mal
- Danksagung erhalten: 1 Mal
Stunde und Minute + Stunde und Minute
Kann ich per Script 08:00 Uhr + 01:00 Uhr rechnen?
Oder 08:00 Uhr + 30 Minuten?
Oder 08:00 Uhr + 30 Minuten?
Zuletzt geändert von joni-blue am 05.01.2013, 10:32, insgesamt 1-mal geändert.
Reboot tut gut ! ! !
Re: Stunde und Minute + Stunde und Minute
So könnte es gehen:
Code: Alles auswählen
string s1; ! Uhrzeit in hh:mm
string s2; ! Zeitdauer in hh:mm
var h1 = s1.Substr(0,2).ToInteger();
var h2 = s2.Substr(0,2).ToInteger();
var m1 = s1.Substr(3,2).ToInteger();
var m2 = s2.Substr(3,2).ToInteger();
! Gesamt in Minuten
var t = (60 * h1) + m1 + (60 * h2) + m2;
! Nach 24 Uhr ?
if (t > 1440) {t = t - 1440;}
! Stunden abgerundet
h1 = 1 * (t / 60);
m1 = t - (60 * h1);
! Ergebnis in String
s1 = h1.ToString()+":"+m1.ToString();
Versionen: HM-CC-TC 2.1, HM-LC-Sw1 1.9, HM-CC-RT-DN 1.1, HM-MOD-RPI-PCB 1.2.1 (keine CCU)
Re: Stunde und Minute + Stunde und Minute
Was soll den davon das Ergebnis sein? 8:00 Quadrat-Uhr?joni-blue hat geschrieben:08:00 Uhr * 01:00 Uhr rechnen?
- joni-blue
- Beiträge: 1173
- Registriert: 04.01.2012, 12:20
- System: CCU
- Wohnort: Hannover
- Hat sich bedankt: 6 Mal
- Danksagung erhalten: 1 Mal
Re: Stunde und Minute + Stunde und Minute
LÖSUNG:
Code: Alles auswählen
string s1 = ("10:10"); ! Uhrzeit in hh:mm
string s2 = ("01:05"); ! Zeitdauer in hh:mm
var h1 = s1.Substr(0,2).ToInteger();
var h2 = s2.Substr(0,2).ToInteger();
var m1 = s1.Substr(3,2).ToInteger();
var m2 = s2.Substr(3,2).ToInteger();
! Gesamt in Minuten
var t = (60 * h1) + m1 + (60 * h2) + m2;
! Nach 24 Uhr ?
if (t > 1440) {t = t - 1440;}
! Stunden abgerundet
h1 = 1 * (t / 60);
m1 = t - (60 * h1);
! Ergebnis in String
s1 = h1.ToString()+":"+m1.ToString();
WriteLine(s1);
Reboot tut gut ! ! !
- joni-blue
- Beiträge: 1173
- Registriert: 04.01.2012, 12:20
- System: CCU
- Wohnort: Hannover
- Hat sich bedankt: 6 Mal
- Danksagung erhalten: 1 Mal
Re: Stunde und Minute + Stunde und Minute
Hi, bitte nochmals um Hilfe bei diesem Script!
Folgender Fehler tritt hier bei den eingetragenen Zeiten auf!
Antwort von s1 =
ich brauche aber 09:15 um es mit der aktuellen Uhrzeit vergleichen zu können!
danke für die Hilfe
Code: Alles auswählen
string s1 = ("09:10"); ! Uhrzeit in hh:mm
string s2 = ("00:05"); ! Zeitdauer in hh:mm
var h1 = s1.Substr(0,2).ToInteger();
var h2 = s2.Substr(0,2).ToInteger();
var m1 = s1.Substr(3,2).ToInteger();
var m2 = s2.Substr(3,2).ToInteger();
! Gesamt in Minuten
var t = (60 * h1) + m1 + (60 * h2) + m2;
! Nach 24 Uhr ?
if (t > 1440) {t = t - 1440;}
! Stunden abgerundet
h1 = 1 * (t / 60);
m1 = t - (60 * h1);
! Ergebnis in String
s1 = h1.ToString()+":"+m1.ToString();
WriteLine(s1);
Antwort von s1 =
Code: Alles auswählen
9:15
danke für die Hilfe
Reboot tut gut ! ! !
- anli
- Beiträge: 4326
- Registriert: 10.06.2009, 14:01
- Wohnort: 20 Min. nördlich von Hannover und bei Bremen
- Hat sich bedankt: 1 Mal
- Danksagung erhalten: 23 Mal
- Kontaktdaten:
Re: Stunde und Minute + Stunde und Minute
Quick and dirty (da war noch ein anderer Fehler drin: + wird nicht für string concatenation verwendet sondern #)
Code: Alles auswählen
string s1 = ("09:10"); ! Uhrzeit in hh:mm
string s2 = ("00:05"); ! Zeitdauer in hh:mm
var h1 = s1.Substr(0,2).ToInteger();
var h2 = s2.Substr(0,2).ToInteger();
var m1 = s1.Substr(3,2).ToInteger();
var m2 = s2.Substr(3,2).ToInteger();
! Gesamt in Minuten
var t = (60 * h1) + m1 + (60 * h2) + m2;
! Nach 24 Uhr ?
if (t > 1440) {t = t - 1440;}
! Stunden abgerundet
h1 = 1 * (t / 60);
m1 = t - (60 * h1);
! Ergebnis in String
if (h1 < 10) { s1 = "0" # h1.ToString() # ":" # m1.ToString(); }
if (h1 > 9) { s1 = h1.ToString() # ":" # m1.ToString(); }
WriteLine(s1);
Herzliche Grüße, anli
Alle Angaben ohne Gewähr und Haftung meinerseits. Verwendung der von mir zur Verfügung gestellten Downloads auf eigene Gefahr. Ich bitte um Verständnis, dass ich aus zeitlichen Gründen keine unaufgeforderte Hilfestellung per PN/Mail geben kann. Bitte allgemeine Fragen ins Forum stellen, hier können viele fähige User viel schneller helfen.
Homematic-Manager v2: einfaches Tool zum Erstellen von Direktverknüpfungen und Bearbeiten von Gerätenamen, -parametern etc. für Homematic und HomematicIP (Alternative diesbzgl. zur WebUI)
Einsteiger-Hilfe • erweiterter Skript-Parser
Alle Angaben ohne Gewähr und Haftung meinerseits. Verwendung der von mir zur Verfügung gestellten Downloads auf eigene Gefahr. Ich bitte um Verständnis, dass ich aus zeitlichen Gründen keine unaufgeforderte Hilfestellung per PN/Mail geben kann. Bitte allgemeine Fragen ins Forum stellen, hier können viele fähige User viel schneller helfen.
Homematic-Manager v2: einfaches Tool zum Erstellen von Direktverknüpfungen und Bearbeiten von Gerätenamen, -parametern etc. für Homematic und HomematicIP (Alternative diesbzgl. zur WebUI)
Einsteiger-Hilfe • erweiterter Skript-Parser
Re: Stunde und Minute + Stunde und Minute
Machst Du einen Stringvergleich ?joni-blue hat geschrieben: Antwort von s1 =
ich brauche aber 09:15 um es mit der aktuellen Uhrzeit vergleichen zu können!Code: Alles auswählen
9:15
danke für die Hilfe
Dann vielleicht so:
Code: Alles auswählen
! Ergebnis in String
if (h1 < 10)
{ s1 = "0"+h1.ToString();}
else
{ s1 = h1.ToString();}
if (m1 < 10)
{ s2 = "0"+m1.ToString();}
else
{ s2 = m1.ToString();}
s1 = s1+":"+s2;
Versionen: HM-CC-TC 2.1, HM-LC-Sw1 1.9, HM-CC-RT-DN 1.1, HM-MOD-RPI-PCB 1.2.1 (keine CCU)
- joni-blue
- Beiträge: 1173
- Registriert: 04.01.2012, 12:20
- System: CCU
- Wohnort: Hannover
- Hat sich bedankt: 6 Mal
- Danksagung erhalten: 1 Mal
Re: Stunde und Minute + Stunde und Minute
Ansatz gut geht aber nicht mit den Zahlenjoni-blue hat geschrieben:LÖSUNG:
Code: Alles auswählen
string s1 = ("10:10"); ! Uhrzeit in hh:mm string s2 = ("01:05"); ! Zeitdauer in hh:mm var h1 = s1.Substr(0,2).ToInteger(); var h2 = s2.Substr(0,2).ToInteger(); var m1 = s1.Substr(3,2).ToInteger(); var m2 = s2.Substr(3,2).ToInteger(); ! Gesamt in Minuten var t = (60 * h1) + m1 + (60 * h2) + m2; ! Nach 24 Uhr ? if (t > 1440) {t = t - 1440;} ! Stunden abgerundet h1 = 1 * (t / 60); m1 = t - (60 * h1); ! Ergebnis in String s1 = h1.ToString()+":"+m1.ToString(); WriteLine(s1);
string s1 = ("10:00"); ! Uhrzeit in hh:mm
string s2 = ("00:05"); ! Zeitdauer in hh:mm
da kommt dann
10:5
bei raus
DANK EURER HILFE HABE ICH ES JETZT ABER GESCHAFFT!
HIER DER RICHTIGE WEG:
Code: Alles auswählen
string s1 = ("00:00"); ! Uhrzeit in hh:mm
string s2 = ("00:05"); ! Zeitdauer in hh:mm
var h1 = s1.Substr(0,2).ToInteger();
var h2 = s2.Substr(0,2).ToInteger();
var m1 = s1.Substr(3,2).ToInteger();
var m2 = s2.Substr(3,2).ToInteger();
! Gesamt in Minuten
var t = (60 * h1) + m1 + (60 * h2) + m2;
! Nach 24 Uhr ?
if (t > 1440) {t = t - 1440;}
! Stunden abgerundet
h1 = 1 * (t / 60);
m1 = t - (60 * h1);
! Ergebnis in String
if (h1 < 10)
{ s1 = "0"+h1.ToString();}
else
{ s1 = h1.ToString();}
if (m1 < 10)
{ s2 = "0"+m1.ToString();}
else
{ s2 = m1.ToString();}
s1 = s1+":"+s2;
WriteLine(s1);
Reboot tut gut ! ! !
Re: Stunde und Minute + Stunde und Minute
Beide Varianten sind möglich und auch dokumentiert.anli hat geschrieben:Quick and dirty (da war noch ein anderer Fehler drin: + wird nicht für string concatenation verwendet sondern #)
Versionen: HM-CC-TC 2.1, HM-LC-Sw1 1.9, HM-CC-RT-DN 1.1, HM-MOD-RPI-PCB 1.2.1 (keine CCU)