unit FrameDateSel; 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, cxCheckBox; type TfrmFrameDateSel = class(TFrame) lbl2: TLabel; BegDate: TcxDateEdit; EndDate: TcxDateEdit; cxButton1: TcxButton; cxButton2: TcxButton; cxButton3: TcxButton; cbbType: TcxComboBox; cxButton4: TcxButton; cxButton5: TcxButton; TimeType: TcxComboBox; jqModel: TcxCheckBox; 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 TfrmFrameDateSel.cxButton1Click(Sender: TObject); begin BegDate.Date := StartOfTheMonth(strToDate(FormatDateTime('yyyy-MM-dd', Now))); EndDate.Date := EndOfTheMonth(strToDate(FormatDateTime('yyyy-MM-dd', Now))); end; procedure TfrmFrameDateSel.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 TfrmFrameDateSel.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 TfrmFrameDateSel.cxButton4Click(Sender: TObject); begin BegDate.Date := strToDate(FormatDateTime('yyyy-MM-dd', Now)); EndDate.Date := strToDate(FormatDateTime('yyyy-MM-dd', Now)); end; procedure TfrmFrameDateSel.cxButton5Click(Sender: TObject); begin BegDate.Date := StartOfTheMonth(strToDate(FormatDateTime('yyyy-01-01', Now))); EndDate.Date := EndOfTheMonth(strToDate(FormatDateTime('yyyy-12-01', Now))); end; end.