09.04.2010, 08:32
общий
это ответ
Здравствуйте, angel.nero.
В приложении код модуля. Приложеный файл - проект на Delphi 7.
Из элементов управления на форму кидать:
TDateTimePicker - для выбора даты
TButton - кнопка "Рассчитать"
TLabel - для вывода информации
Приложение:
unit Main;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ComCtrls, Dateutils;
type
TForm1 = class(TForm)
DateTimePicker1: TDateTimePicker;
Label1: TLabel;
Button1: TButton;
Label2: TLabel;
Label3: TLabel;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var Cdate, Bdate, CYBdate: Tdatetime;
cy,cm,cd,by,bm,bd:Word;
begin
Cdate:=Now; //Текущая дата
Bdate:=Form1.DateTimePicker1.DateTime; // Дата рождения
DecodeDate(Bdate,by,bm,bd);
DecodeDate(Cdate,cy,cm,cd); // Разбираем даты по частям
CYBdate:=EncodeDate(cy,bm,bd); //День рождения в текущем году
If CYBDate>Cdate then label3.Caption:=inttostr(DaysBetween(Cdate, CYBdate)+1)+' дней' // Проверка был ли день рождения в текущем году
else
begin
CYBdate:=EncodeDate(cy+1,bm,bd); //Если д.р. в этом году уже был, то рассчитываем кол-во дней до д.р. в следующем году
label3.Caption:=inttostr(DaysBetween(Cdate, CYBdate)+1)+' дней'
end;
end;
end.