mit Datum rechnen

Anfängerfragen zum Programmieren mit PureBasic.
Rebon
Beiträge: 263
Registriert: 20.05.2009 19:13

Beitrag von Rebon »

@MrVain
Ich hab ein bischen mit deinem Programm herumexperimentiert.
Ich hoffe du nimmst es mir nicht übel. :)

Code: Alles auswählen

Global START_ZEIT$
Global END_ZEIT$
Global DATUM_WERT$
Global DATUM_START$
Global DATUM_END$
Global START_WERT$
Global END_WERT$
Global x
Global v = 2
Global Datum$
Global Sekunden
Global WertDatumAlt$
Global WertDatumNeu$

Procedure WerteSuchen()
START_WERT$ = Mid(START_ZEIT$, x, v)
END_WERT$ = Mid(END_ZEIT$, x, v)

If x = 7 Or x = 4
   WertDatumAlt$ = START_WERT$ + WertDatumAlt$
   WertDatumNeu$ = END_WERT$ + WertDatumNeu$ 
 Else
   WertDatumAlt$ + START_WERT$
   WertDatumNeu$ + END_WERT$
EndIf
EndProcedure


Procedure NeuerWertLinks(Zeichen$)
DATUM_START$ = Mid(START_WERT$, 1, v) + Zeichen$ + DATUM_START$
DATUM_END$ = Mid(END_WERT$, 1, v) + Zeichen$ + DATUM_END$
EndProcedure

Procedure NeuerWertRechts(Zeichen$)
DATUM_START$ = DATUM_START$ + Zeichen$ + Mid(START_WERT$, 1, v)
DATUM_END$ = DATUM_END$ + Zeichen$ + Mid(END_WERT$, 1, v)
EndProcedure

START_ZEIT$ = "20.12.2009 10:35:11"
END_ZEIT$ = "20.12.2009 11:25:11"
        
For x = 1 To y = Len(START_ZEIT$)

Select x

;Tag
Case 1
WerteSuchen()
NeuerWertLinks("")

;Monat
Case 4
WerteSuchen()
NeuerWertRechts(".")

;Jahr
Case 7
v = 4
WerteSuchen()
NeuerWertRechts(".")
v = 2 
AltesDatum$ = DATUM_START$
NeuesDatum$ = DATUM_END$
DatumZahlAlt$ = WertDatumAlt$
DatumZahlNeu$ = WertDatumNeu$
DATUM_START$ = ""
DATUM_END$ = ""
WertDatumAlt$ = ""
WertDatumNeu$ = ""

;Stunden
Case 12
WerteSuchen()
NeuerWertRechts("")

;Minuten
Case 15
WerteSuchen()
NeuerWertRechts(":")

;Sekunden
Case 18
WerteSuchen()
NeuerWertRechts(":")
AlteZeit$ = DATUM_START$
NeueZeit$ = DATUM_END$
ZeitZahlAlt$ = WertDatumAlt$
ZeitZahlNeu$ = WertDatumNeu$
DATUM_START$ = ""
DATUM_END$ = ""
WertDatumAlt$ = ""
WertDatumNeu$ = ""

EndSelect

Next x
 
Sekunden = ParseDate("%yyyy%mm%dd%hh%ii%ss", DatumZahlNeu$ + RSet(ZeitZahlNeu$,6,"0")) - ParseDate("%yyyy%mm%dd%hh%ii%ss", DatumZahlAlt$ + RSet(ZeitZahlAlt$,6,"0")) 

Debug "Startdatum: " + AltesDatum$
Debug "Enddatum: " + NeuesDatum$
Debug "Startdatumszahl: " + DatumZahlAlt$
Debug "Enddatumszahl: " + DatumZahlNeu$
Debug "Startzeit: " + NeueZeit$
Debug "Endzeit: " + AlteZeit$
Debug "Startzeitzahl: " + ZeitZahlNeu$
Debug "Endzeitzahl: " + ZeitZahlAlt$
Debug "Sekunden: " + Str(Sekunden)

End
Code gespacet - Kaeru fecit
Rebon
Beiträge: 263
Registriert: 20.05.2009 19:13

Beitrag von Rebon »

Rebon hat geschrieben:@MrVain

Code: Alles auswählen

Sekunden = ParseDate ("%yyyy%mm%dd%hh%ii%ss",DatumZahlNeu$ + RSet(ZeitZahlNeu$,6,"0")) - ParseDate("%yyyy%mm%dd%hh%ii%ss", DatumZahlAlt$ + RSet(ZeitZahlAlt$,6,"0")) 

Das ist eine ganze Zeile!

War in der Vorschau auch noch so.

Code gespacet - Kaeru fecit
Überflüssigen Code-Tag entfernt - Andesdaf
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

Rebon hat geschrieben:Das ist eine ganze Zeile!

War in der Vorschau auch noch so.
wie breit jemand sein Brauserfenster macht, ist jedem seine sache.
Und es ist tierisch nervig, den horizontalen scrollbalken benutzen zu müssen.
also damit das Forenlayout nicht vergewaltigt wird, macht man spaces in die Codezeile, damit der Brauser es umbrechen kann.
trotzdem kann man es per Copy/Paste in die IDE kopieren und es bleibt eine einzige Zeile.

... eigentlich macht man sowieso einige spaces in seine codezeilen, damit man sie besser lesen kann.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Rebon
Beiträge: 263
Registriert: 20.05.2009 19:13

Beitrag von Rebon »

Kaeru Gaman hat geschrieben:
wie breit jemand sein Brauserfenster macht, ist jedem seine sache.
Und es ist tierisch nervig, den horizontalen scrollbalken benutzen zu müssen.
also damit das Forenlayout nicht vergewaltigt wird, macht man spaces in die Codezeile, damit der Brauser es umbrechen kann.
trotzdem kann man es per Copy/Paste in die IDE kopieren und es bleibt eine einzige Zeile.

... eigentlich macht man sowieso einige spaces in seine codezeilen, damit man sie besser lesen kann.
Es ist eine einzige Zeile mit Überlänge, das wird man wohl noch
verkraften. :wink:

Ausserdem ist das aber immer noch kein Grund weshalb es in der Vorschau nicht angezeigt wird. /:->
Andesdaf
Moderator
Beiträge: 2673
Registriert: 15.06.2008 18:22
Wohnort: Dresden

Beitrag von Andesdaf »

Bei mir wird schon in der Vorschau das Layout zerstört.
Win11 x64 | PB 6.20
Rebon
Beiträge: 263
Registriert: 20.05.2009 19:13

Beitrag von Rebon »

Andesdaf hat geschrieben:Bei mir wird schon in der Vorschau das Layout zerstört.
Dann liegt es an meinem Browser(Mozilla) oder hab ich irgendwas falsch
gemacht?

Btw. Gibt es in PureBasic eine möglichkeit, mit einem Zeichen
den Compiler zu veranlassen zwei Zeilen als eine
zu compilieren?

Kann mich an sowas errinern, es ist aber auch gut möglich
das es bei einer anderen Programmiersprache war.

In der Help fand ich nichts dazu oder übersehen?
Andesdaf
Moderator
Beiträge: 2673
Registriert: 15.06.2008 18:22
Wohnort: Dresden

Beitrag von Andesdaf »

Rebon hat geschrieben:Btw. Gibt es in PureBasic eine möglichkeit, mit einem Zeichen
den Compiler zu veranlassen zwei Zeilen als eine
zu compilieren?
Von Purebasic selbst aus nicht.

aber: http://www.purebasic.fr/german/viewtopic.php?t=10350
Win11 x64 | PB 6.20
Rebon
Beiträge: 263
Registriert: 20.05.2009 19:13

Beitrag von Rebon »

Andesdaf hat geschrieben:
Rebon hat geschrieben:Btw. Gibt es in PureBasic eine möglichkeit, mit einem Zeichen
den Compiler zu veranlassen zwei Zeilen als eine
zu compilieren?
Von Purebasic selbst aus nicht.

aber: http://www.purebasic.fr/german/viewtopic.php?t=10350
Danke Andesdaf! :) :allright:
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

Rebon hat geschrieben:
Andesdaf hat geschrieben:
Rebon hat geschrieben:Btw. Gibt es in PureBasic eine möglichkeit, mit einem Zeichen
den Compiler zu veranlassen zwei Zeilen als eine
zu compilieren?
Von Purebasic selbst aus nicht.

aber: http://www.purebasic.fr/german/viewtopic.php?t=10350
Danke Andesdaf! :) :allright:
das ist doch in diesem Falle völlig unnötig!
Kaeru Gaman hat geschrieben:trotzdem kann man es per Copy/Paste in die IDE kopieren und es bleibt eine einzige Zeile.
also nochmal langsam zum mitdenken:
es ist völlig egal, mit wieviel Zeilenumbrüchen das im Brauser angezeigt wird,
wenn du es rauskopierst, ist es wieder eine einzige Codezeile.

Rebon hat geschrieben:Dann liegt es an meinem Browser(Mozilla)
nein, es liegt an der Auflösung deines Desktops, bzw. mit wieviel Pixel breite du das Brauserfenster anzeigen läßt.
Rebon hat geschrieben:oder hab ich irgendwas falsch gemacht?
ja, du liest nur die Hälfte, oder denkst nicht mit.
Rebon hat geschrieben:Es ist eine einzige Zeile mit Überlänge, das wird man wohl noch
verkraften.
völlig egal, ob eine oder dreitausend, der Brauser wird gezwungen,
das Forenlayout breiter als sein Fenster zu machen.

und wenn man nach rechts scrollen muss, um das Forum zu bedienen,
nur weil ein einziger User nicht mitdenkt und eine einzige zu lange Zeile in seinen Code einbaut,
die dadurch sowieso unlesbar wird, mit spaces besser zu lesen wäre,
dann nervt das einfach, und einige Kollegen, die vielleicht sowieso schon angenervt sind,
wegen der Hitze, schlechter Klimatisierung und nervigen Aufgaben im Job,
reagieren auf Solches dann unter Umständen unerwartet pampig.

.... ich hoffe, das war jetzt ausführlich genug, um den Kern der Sache rüber zu bringen.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Rebon
Beiträge: 263
Registriert: 20.05.2009 19:13

Beitrag von Rebon »

Kaeru Gaman hat geschrieben: völlig egal, ob eine oder dreitausend, der Brauser wird gezwungen,
das Forenlayout breiter als sein Fenster zu machen.

und wenn man nach rechts scrollen muss, um das Forum zu bedienen,
nur weil ein einziger User nicht mitdenkt und eine einzige zu lange Zeile in seinen Code einbaut,
die dadurch sowieso unlesbar wird, mit spaces besser zu lesen wäre,
dann nervt das einfach, und einige Kollegen, die vielleicht sowieso schon angenervt sind,
wegen der Hitze, schlechter Klimatisierung und nervigen Aufgaben im Job,
reagieren auf Solches dann unter Umständen unerwartet pampig.

.... ich hoffe, das war jetzt ausführlich genug, um den Kern der Sache rüber zu bringen.
Tut mir leid, als ich den Code schrieb, hab ich tatsächlich nicht
mitgedacht, da ich in erster Linie zum experimentieren geschrieben
habe.

Ich werde das nächste mal 2 Versionen schreiben, eine für PureBasic
und eine für das Forum.
Antworten