本文整理自网络,侵删。

var i: integer; vLine, vStr, vPart: string; vYear, vMonth, vDay: Word; vArr: TArray<string>; vDate: TDateTime;begin Memo2.Clear; for i := 0 to Memo1.Lines.Count - 1 do begin vLine := Memo1.Lines[i]; vStr := StringReplace(vLine, '.', '-', [rfReplaceAll]); vArr := vStr.Split(['-']); case Length(vArr) of 2: begin vYear := StrToIntDef(vArr[0], 2020); vMonth := StrToIntDef(vArr[1], 1); vDay := 1; if not TryEncodeDateTime(vYear, vMonth, vDay, 0, 0, 0, 0, vDate) then vDate := now; end; 3: begin vYear := StrToIntDef(vArr[0], 2020); vMonth := StrToIntDef(vArr[1], 1); vDay := StrToIntDef(vArr[2], 1); if not TryEncodeDateTime(vYear, vMonth, vDay, 0, 0, 0, 0, vDate) then vDate := now; end; else vDate := Now; end; Memo2.Lines.Add(FormatDateTime('YYYY-MM-DD', vDate)); end;
end;
来源:
相关阅读 >>
更多相关阅读请进入《Delphi》频道 >>