unit FrameDateTimeSel; interface uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, cxGraphics, cxControls, cxLookAndFeels, cxLookAndFeelPainters, cxContainer, cxEdit, Vcl.ComCtrls, dxCore, cxDateUtils, cxTextEdit, cxMaskEdit, cxDropDownEdit, cxCalendar, Vcl.StdCtrls, Vcl.Menus, cxButtons, Vcl.ExtCtrls, DateUtils, cxSpinEdit, cxTimeEdit; type TfrmFrameDateTimeSel = class(TFrame) lbl1: TLabel; lbl2: TLabel; BegDate: TcxDateEdit; EndDate: TcxDateEdit; cxButton1: TcxButton; cxButton2: TcxButton; cxButton3: TcxButton; cbbType: TcxComboBox; cxButton4: TcxButton; cxButton5: TcxButton; BegTime: TcxTimeEdit; EndTime: TcxTimeEdit; procedure cxButton4Click(Sender: TObject); procedure cxButton1Click(Sender: TObject); procedure cxButton5Click(Sender: TObject); procedure cxButton2Click(Sender: TObject); procedure cxButton3Click(Sender: TObject); private { Private declarations } public { Public declarations } end; implementation //uses // U_RTFun; {$R *.dfm} procedure TfrmFrameDateTimeSel.cxButton1Click(Sender: TObject); begin BegDate.Date := StartOfTheMonth(strToDate(FormatDateTime('yyyy-MM-dd', Now))); EndDate.Date := EndOfTheMonth(strToDate(FormatDateTime('yyyy-MM-dd', Now))); end; procedure TfrmFrameDateTimeSel.cxButton2Click(Sender: TObject); begin if cbbType.Text = '日' then begin BegDate.Date := BegDate.Date - 1; EndDate.Date := EndDate.Date - 1; end; if cbbType.Text = '月' then begin BegDate.Date := StartOfTheMonth(StartOfTheMonth(EndDate.Date) - 1); EndDate.Date := EndOfTheMonth(StartOfTheMonth(EndDate.Date) - 1); end; if cbbType.Text = '年' then begin BegDate.Date := StartOfTheMonth(strToDate(FormatDateTime('yyyy-01-01', strToDate(FormatDateTime('yyyy-01-01', EndDate.Date)) - 1))); EndDate.Date := EndOfTheMonth(strToDate(FormatDateTime('yyyy-12-01', BegDate.Date))); end; end; procedure TfrmFrameDateTimeSel.cxButton3Click(Sender: TObject); begin if cbbType.Text = '日' then begin BegDate.Date := BegDate.Date + 1; EndDate.Date := EndDate.Date + 1; end; if cbbType.Text = '月' then begin BegDate.Date := EndOfTheMonth(EndDate.Date) + 1; EndDate.Date := EndOfTheMonth(EndOfTheMonth(EndDate.Date) + 1); end; if cbbType.Text = '年' then begin BegDate.Date := StartOfTheMonth(strToDate(FormatDateTime('yyyy-01-01', strToDate(FormatDateTime('yyyy-12-31', EndDate.Date)) + 1))); EndDate.Date := EndOfTheMonth(strToDate(FormatDateTime('yyyy-12-01', BegDate.Date))); end; end; procedure TfrmFrameDateTimeSel.cxButton4Click(Sender: TObject); begin BegDate.Date := strToDate(FormatDateTime('yyyy-MM-dd', Now)); EndDate.Date := strToDate(FormatDateTime('yyyy-MM-dd', Now)); end; procedure TfrmFrameDateTimeSel.cxButton5Click(Sender: TObject); begin BegDate.Date := StartOfTheMonth(strToDate(FormatDateTime('yyyy-01-01', Now))); EndDate.Date := EndOfTheMonth(strToDate(FormatDateTime('yyyy-12-01', Now))); end; end.