Dates.pas
上传用户:fh681027
上传日期:2022-07-23
资源大小:1959k
文件大小:2k
源码类别:

Delphi控件源码

开发平台:

Delphi

  1. unit Dates;
  2. interface
  3. type
  4.   TDate = class
  5.   private
  6.     fDate: TDateTime;
  7.     procedure SetDay(const Value: Integer);
  8.     procedure SetMonth(const Value: Integer);
  9.     procedure SetYear(const Value: Integer);
  10.     function GetDay: Integer;
  11.     function GetMonth: Integer;
  12.     function GetYear: Integer;
  13.   public
  14.     constructor Create; overload;
  15.     constructor Create (y, m, d: Integer); overload;
  16.     procedure SetValue (y, m, d: Integer); overload;
  17.     procedure SetValue (NewDate: TDateTime); overload;
  18.     procedure Assign(Source: TDate);
  19.     function LeapYear: Boolean;
  20.     procedure Increase (NumberOfDays: Integer = 1);
  21.     procedure Decrease (NumberOfDays: Integer = 1);
  22.     function GetText: string;
  23.     property Year: Integer read GetYear write SetYear;
  24.     property Month: Integer read GetMonth write SetMonth;
  25.     property Day: Integer read GetDay write SetDay;
  26.   end;
  27.   TNewDate = class (TDate)
  28.   public
  29.      function GetText: string;
  30.   end;
  31. implementation
  32. uses
  33.   SysUtils, DateUtils;
  34. procedure TDate.Assign (Source: TDate);
  35. begin
  36.   fDate := Source.fDate;
  37. end;
  38. procedure TDate.SetValue (y, m, d: Integer);
  39. begin
  40.   fDate := EncodeDate (y, m, d);
  41. end;
  42. function TDate.LeapYear: Boolean;
  43. begin
  44.   Result := IsInLeapYear(fDate);
  45. end;
  46. procedure TDate.Increase (NumberOfDays: Integer = 1);
  47. begin
  48.   fDate := fDate + NumberOfDays;
  49. end;
  50. function TDate.GetText: string;
  51. begin
  52.   GetText := DateToStr (fDate);
  53. end;
  54. procedure TDate.Decrease (NumberOfDays: Integer = 1);
  55. begin
  56.   fDate := fDate - NumberOfDays;
  57. end;
  58. constructor TDate.Create (y, m, d: Integer);
  59. begin
  60.   fDate := EncodeDate (y, m, d);
  61. end;
  62. constructor TDate.Create;
  63. begin
  64.   fDate := Date;
  65. end;
  66. procedure TDate.SetValue(NewDate: TDateTime);
  67. begin
  68.   fDate := NewDate;
  69. end;
  70. procedure TDate.SetDay(const Value: Integer);
  71. begin
  72.   fDate := RecodeDay (fDate, Value);
  73. end;
  74. procedure TDate.SetMonth(const Value: Integer);
  75. begin
  76.   fDate := RecodeMonth (fDate, Value);
  77. end;
  78. procedure TDate.SetYear(const Value: Integer);
  79. begin
  80.   fDate := RecodeYear (fDate, Value);
  81. end;
  82. function TDate.GetDay: Integer;
  83. begin
  84.   Result := DayOf (fDate);
  85. end;
  86. function TDate.GetMonth: Integer;
  87. begin
  88.   Result := MonthOf (fDate);
  89. end;
  90. function TDate.GetYear: Integer;
  91. begin
  92.   Result := YearOf (fDate);
  93. end;
  94. { TNewDate }
  95. function TNewDate.GetText: string;
  96. begin
  97.   GetText := FormatDateTime ('dddddd', fDate);
  98. end;
  99. end.