Registriert seit: 22. Jul 2004
Ort: Münster Osnabrück
116 Beiträge
|
AW: String zerlegen
6. Apr 2013, 14:02
Hallo,
etwa in dieser Art.
Delphi-Quellcode:
uses
sysutils,DateUtils{DaysinMonth};
var
MonatsErster,
MonatsLetzer,
Urlaubsbeginn,
Urlaubsende : TDateTime;
i: LongInt;
wJahr,wMonat,wTag,
TageImMonat,suchMonat,Spalte : word;
begin
// welches Jahr haben wir.
DecodeDate(Date(),wJahr,wMonat,wTag);
suchMonat := 2;//StrToInt(cbmonat.Text);
MonatsErster := EncodeDate(wJahr,suchMonat,1);
TageImMonat := DaysInMonth(MonatsErster);
MonatsLetzer := EncodeDate(wJahr,suchMonat,TageImMonat);
i := 0;
while i> 10 {not qbefehl.eof} do begin
// Urlaubsbeginn := qbefehl.Fields.Fields[1].AsDate;
// Urlaubsende := Urlaubsbeginn+qbefehl.fields.fields[2].asinteger;//+Dauer
Urlaubsbeginn := random(2*TageImMonat)-TageImMonat + MonatsErster;
Urlaubsende := Urlaubsbeginn + random(21);
Writeln('Urlaubsbeginn',FormatDateTime(' dd.mm.yyyy HH:NN:SS.ZZZ',Urlaubsbeginn));
Writeln('Urlaubsende ',FormatDateTime(' dd.mm.yyyy HH:NN:SS.ZZZ',Urlaubsende));
if (Urlaubsbeginn <= MonatsLetzer) AND (Urlaubsende >= MonatsErster) then begin
IF Urlaubsbeginn < MonatsErster then
Urlaubsbeginn := MonatsErster;
IF Urlaubsende > MonatsLetzer then
Urlaubsende := MonatsLetzer;
// Spalte :=qbefehl.fields.fields[0].asinteger;// passende Spalte
DecodeDate(Urlaubsbeginn,wJahr,wMonat,wTag);
repeat // Mindestens 1 Tag
//sg.Cells[wTag,Spalte]:='XXXXXXXX';
//inc(wtag);
Writeln('Urlaub ',FormatDateTime('dd.mm.yyyy HH:NN:SS.ZZZ',Urlaubsbeginn));
Urlaubsbeginn := Urlaubsbeginn+1;
until Urlaubsbeginn > Urlaubsende;
inc(i);
end;
// qbefehl.next;
writeln;
end;
end.
Gruß Horst
|
|
Zitat
|