Das Notes Forum

Domino 9 und frühere Versionen => ND8: Entwicklung => Thema gestartet von: Akunin am 26.08.08 - 09:14:59

Titel: String zur Zeit , Lotus Script
Beitrag von: Akunin am 26.08.08 - 09:14:59
Hi, ich hab folgendes Problem

ich hab einen Agent programmiert der sich aus einer Email die Anfangszeit und den Endzeit auslesen soll und in ein Dokumentschreiben soll.

Zeit_von
Zeit_bis

so, später will ich allerdings noch mit den Zeiten rechnen, problem ist hier bei nur das die als String wiedergegeben werden. Hab ich mir gedacht ich probiers mal mit Cdat, dort werden sie mir allerdiings mit "0:00" angezeigt, egal was in der Mail steht.

meine Frage also nun, was kann ich machen damit ich die Strings als Uhrzeit wiedergeben kann und später noch damit rechnen kann ?
Titel: Re: String zur Zeit , Lotus Script
Beitrag von: botschi am 26.08.08 - 09:23:18
Mit der NotesDateTime-Klasse und adjust.

Matthias
Titel: Re: String zur Zeit , Lotus Script
Beitrag von: Akunin am 26.08.08 - 10:26:09
hm, so wie ich das in der Hilfe gelesen hab kann man da ja nur mit festen Zeit arbeiten oder bzw nur mit "Now", also der jetzigen,

ich brauch aber den Zeit die in der Mail steht z.b. 

Zeit_v = 8:15
Zeit_b = 9:00

diesen Wert brauch ich dann als Zeit

ich habs jetzt mal mit
Evaluate("@TextToTime(Zeit_v)")
und
Evaluate("@TextToTime(Zeit_vb")

aber auch hier bekomm ich bei beiden 00:00:00 als ergebniss

die Rechnung erfolg erst später in ner Ansicht, aber die ist nicht das problem
Titel: Re: String zur Zeit , Lotus Script
Beitrag von: botschi am 26.08.08 - 10:32:43
Du kannst die Variable doch so füllen:

Dim dt As New NotesDateTime("DEINEZEIT")

Dann hast Du doch alle Möglichkeiten (AdjustDay, AdjustSecond, DateOnly, TimeOnly, usw.)


Matthias
Titel: Re: String zur Zeit , Lotus Script
Beitrag von: Akunin am 26.08.08 - 11:56:57
jo gut, aber wenn ich nur die Variable mit der Zeit einsetzte

Code
Dim dt As New NotesDateTime("Zeit_v")

dann zeigt er mir ebenso keinen Inhalt :(
Titel: Re: String zur Zeit , Lotus Script
Beitrag von: m3 am 26.08.08 - 12:13:42
Code
  Dim dateTime As New NotesDateTime("")
  dateTime.LocalTime = Datenumber(2005, 03, 04) + Timenumber(8,15, 0)
  Call dateTime.SetAnyDate

Bernhard, was meinst Du ?
Titel: Re: String zur Zeit , Lotus Script
Beitrag von: botschi am 26.08.08 - 12:24:05
Du musst halt Datum und Zeit angeben, gib ihm doch irgendein Datum mit...
m3, was meinst Du damit?

Matthias
Titel: Re: String zur Zeit , Lotus Script
Beitrag von: Akunin am 26.08.08 - 12:25:13
ok, problem hat sich erledigt, aber ne gute lösung dafür gefunden, danke für eure ratschläge
Titel: Re: String zur Zeit , Lotus Script
Beitrag von: botschi am 26.08.08 - 12:26:08
Wie sieht denn die Lösung aus?

Matthias
Titel: Re: String zur Zeit , Lotus Script
Beitrag von: koehlerbv am 26.08.08 - 12:28:38
Prinzipiell: Es ist die schlechteste Idee, die man haben kann, Date-/Time-Werte in Strings abzuspeichern.
Was jetzt folgt, gilt auch nur, wenn der Client, der den unseligen String gebildet hat, mit den gleichen länderspezfischen Einstellungen lief wie der, der jetzt die Konvertierung durchführen soll.

Selbstverständlich kann man Strings, die korrekt einen Datums-/Zeitwert darstellen, mit Cdat in ein Variant des Typs 7 wandeln, ebenso funktioniert die Bildung eines NotesDateTime-Objekts.

Beispiel:
Gegeben sei ein Feld "DateString", Typ String, Inhalt "8:15".
Der folgende Code gibt dann korrekt "08:15:00" aus, der Variant ist vom Typ 7 und korrekt gefüllt:
Code
Sub Click (Source As Button)
	
	Dim ws As New NotesUIWorkspace
	Dim doc As NotesDocument
	Dim vDT As Variant
	
	Set doc = ws.CurrentDocument.Document
	vDT = Cdat (doc.DateString (0))
	
	Messagebox vDT
	
End Sub

Benötigt man zum Weiterrechnen nur die Uhrzeit, zieht man sich einfach den Fraction-Part.

Bernhard
Titel: Re: String zur Zeit , Lotus Script
Beitrag von: Akunin am 26.08.08 - 12:34:09
jop, genau so wie Bernhard es erklärt hat, hab ichs jetzt auch und funktioniert problemlos