오늘날짜, 이번달, 다음에 버튼3을 눌렀을때 한달지난 다음달이 출력되게 할려면 어떻하나여
부탁드려여...
procedure TForm1.Button1Click(Sender: TObject);
begin
edit1.text:= '오늘은' + datetoStr(now);
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
edit2.text:= '이번달은 ' + FormatDateTime('MM',now);
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
edit3.text:= '다음달은 ' + FormatDateTime('MM',now-1);
end;
end.
그런데, 만들어 놓고보니, 더 어렵게 해 놓았네요. 죄송 ^^
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;
type
TForm1 = class(TForm)
Edit1: TEdit; // 오 늘 출력창
Edit2: TEdit; // 이번달 출력창
Edit3: TEdit; // 다음달 출력창
Button1: TButton; // 오 늘 버튼
Button2: TButton; // 이번달 버튼
Button3: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject); // 다음달 버튼
private
{ Private declarations }
public
{ Public declarations }
function TestDate : String;
end;
var
Form1: TForm1;
Y1, M1, D1 : String;
Y, M, D : Word;
MyDate : TDateTime;
implementation
{$R *.DFM}
procedure TForm1.Button1Click(Sender: TObject);
begin
// 이 방식은 2000-09-26 등과 같이 나타나죠.
// 단순이 26일이라는 것만 나타내기 위해서는 차라리 함수를 하나 만드는 것이
// 편할수도 있습니다.
Edit1.Text := DateToStr(Now);
// 또는 아래와 같이 사용하면 '26' 만 나오겠지요?
// Edit1.Text := Copy(TestDate, 7, 2);
end;
// 날짜를 되돌려주는 함수
function TForm1.TestDate : String;
begin
MyDate := Now;
DecodeDate(MyDate, Y, M, D);
// 구한 년, 월, 일 자료를 전역변수로..
Y1 := IntToStr(Y);
if Length(IntToStr(M)) < 2 then M1 := '0' + IntToStr(M)
else M1 := IntToStr(M);
if Length(IntToStr(D)) < 2 then D1 := '0' + IntToStr(D)
else D1 := IntToStr(D);
// 이렇게 하면, '20000926' 과 같이 하나의 문자열로 만들어지겠죠?
// 이걸 잘라쓰는 무식한 방법을 사용합니다 ^^
Result := Y1 + M1 + D1;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
Edit2.Text := Copy(TestDate, 5, 2);
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
Inc(M);
Edit3.Text := IntToStr(M);
end;
end.