Den moderne arbejdsplads er i stigende grad afhængig af mødelokaler til at fremme samarbejde, men dette skift medfører også stigende sikkerhedsudfordringer.
Ja, om navnet er tomt eller om daylightDate=0 eller daylightBias=0 eller samme som bias/standard bias. Men du kan jo prøve på din egen maskine og slå den fra/til og printe værdierne ud i en dlg-box.
1) Sæt en TMemo på en form. 2) Lav et OnCreate Event 3) Prøv det her :
function Date2Month(const DT: TDateTime): Word; var D, Y: Word; begin DecodeDate(DT, Y, Result, D); end;
function Date2Year(const DT: TDateTime): Word; var D, M: Word; begin DecodeDate(DT, Result, M, D); end;
function ThisYear: Word; begin Result := Date2Year(Date); end;
function DateIsLeapYear(const DT: TDateTime): Boolean; begin Result := IsLeapYear(Date2Year(DT)); end;
function DaysInMonth(const DT: TDateTime): Byte; begin case Date2Month(DT) of 2: if DateIsLeapYear(DT) then Result := 29 else Result := 28; 4, 6, 9, 11: Result := 30; else Result := 31; end; end;
function DayOfMonth2Date(year, month, weekInMonth, dayInWeek: word): TDateTime; var days: integer; day: integer; begin if (weekInMonth >= 1) and (weekInMonth <= 4) then begin day := DayOfWeek(EncodeDate(year, month, 1)); // get first day in month day := 1 + dayInWeek - day; // get first dayInWeek in month if day <= 0 then Inc(day, 7); day := day + 7 * (weekInMonth - 1); // get weekInMonth-th dayInWeek in month Result := EncodeDate(year, month, day); end else if weekInMonth = 5 then begin // last week, calculate from end of month days := DaysInMonth(EncodeDate(year, month, 1)); day := DayOfWeek(EncodeDate(year, month, days)); // get last day in month day := days + (dayInWeek - day); if day > days then Dec(day, 7); // get last dayInWeek in month Result := EncodeDate(year, month, day); end else Result := 0; end; { DayOfMonth2Date }
function DSTDate2Date(dstDate: TSystemTime; year: word): TDateTime; begin if dstDate.wMonth = 0 then Result := 0 // invalid month => no DST info else if dstDate.wYear = 0 then begin // day-of-month notation Result := DayOfMonth2Date(year, dstDate.wMonth, dstDate.wDay, dstDate.wDayOfWeek + 1 {convert to Delphi Style}) + EncodeTime(dstDate.wHour, dstDate.wMinute, dstDate.wSecond, dstDate.wMilliseconds); end else if dstDate.wYear = year then // absolute format - valid only for specified year Result := SystemTimeToDateTime(dstDate) else Result := 0; end;
function GetTZDaylightSavingInfoForYear( TZ: TTimeZoneInformation; year: word; var DaylightDate, StandardDate: TDateTime; var DaylightBias, StandardBias: longint): boolean; begin Result := false; if (TZ.DaylightDate.wMonth <> 0) and (TZ.StandardDate.wMonth <> 0) then begin DaylightDate := DSTDate2Date(TZ.DaylightDate, year); StandardDate := DSTDate2Date(TZ.StandardDate, year); DaylightBias := TZ.Bias + TZ.DaylightBias; StandardBias := TZ.Bias + TZ.StandardBias; Result := (DaylightDate <> 0) and (StandardDate <> 0); end; end;
function GetTZDaylightSavingInfo(TZ: TTimeZoneInformation; var DaylightDate, StandardDate: TDateTime; var DaylightBias, StandardBias: longint): boolean; begin Result := GetTZDaylightSavingInfoForYear(TZ, ThisYear, DaylightDate, StandardDate, DaylightBias, StandardBias); end;
if TZ.DaylightDate.wYear = 0 then with TZ.DaylightDate do Memo1.Lines.Add(Format('%s %s of %s at %s GMT', [OrdNums[wDay], LongDayNames[wDayOfWeek + 1], LongMonthNames[wMonth], TimeToStr(EncodeTime(wHour, wMinute, wSecond, wMilliseconds) + StdBias / MINUTESPERDAY)]));
Memo1.Lines.Add('I år : ' + FormatDateTime('c', StartDate));
Memo1.Lines.Add('Sommertid ender den ...'); if TZ.StandardDate.wYear = 0 then with TZ.StandardDate do Memo1.Lines.Add(Format('%s %s i %s klokken %s GMT', [OrdNums[wDay], LongDayNames[wDayOfWeek + 1], LongMonthNames[wMonth], TimeToStr(EncodeTime(wHour, wMinute, wSecond, wMilliseconds) + DayBias / MINUTESPERDAY)]));
Memo1.Lines.Add('I år : ' + FormatDateTime('c', EndDate)); end;
Jeg kan godt grave flere oplysninger frem Hvis du har behov for det ?
Jens B
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.