俺是菜鸟,老师要求俺编一个时间计算软件
   输入开始的年月日 和结束的年月日
  要求计算出其相差的日期
俺在如何限制月不大于12 日期不大于31的时候不知道了
 望高手赐教

解决方案 »

  1.   

    还不如直接用TDateTimePicker控件啊,然后:DateTimePicker2.DateTime-DateTimePicker1.DateTime
      

  2.   

    如果你不愿意使用Delphi的Win32控件TDateTimePicker控件,就不能直接使用 zhoutian618(秦失其鹿,天下共逐,唯胜者得鹿而割之) 所说的
    DateTimePicker2.DateTime-DateTimePicker1.DateTime
    那么
    1.你可以让人任意输入一串字符,然后使用StrToDate()函数转换,并用try语句把系统错误略过,然后两个日期相减可得出天数.
    2.你可以定义数组,存放每月天数,编写函数判断闰年,分析输入的字符串,转换成日期或者数字,慢慢计算吧
      

  3.   

    如果你不愿意使用Delphi的Win32控件TDateTimePicker控件,就不能直接使用 zhoutian618(秦失其鹿,天下共逐,唯胜者得鹿而割之) 所说的
    DateTimePicker2.DateTime-DateTimePicker1.DateTime
    那么
    1.你可以让人任意输入一串字符,然后使用StrToDate()函数转换,并用try语句把系统错误略过,然后两个日期相减可得出天数.
    2.你可以定义数组,存放每月天数,编写函数判断闰年,分析输入的字符串,转换成日期或者数字,慢慢计算吧具体怎么做?教教我撒,俺是第一天学!!5555555555555
      

  4.   

    把下面代码1复制回去,保存为Unit1.dfm
    把代码2复制回去,保存为Unit1.pas
    自己写函数那个你就自己慢慢研究了 :)
    创建一个Delphi的Project,把这2个文件加进来,运行看看
    //************* 代码 1 *****************/
    object Form1: TForm1
      Left = 192
      Top = 133
      Width = 696
      Height = 480
      Caption = 'Form1'
      Color = clBtnFace
      Font.Charset = DEFAULT_CHARSET
      Font.Color = clWindowText
      Font.Height = -11
      Font.Name = 'MS Sans Serif'
      Font.Style = []
      OldCreateOrder = False
      PixelsPerInch = 96
      TextHeight = 13
      object DateTimePicker1: TDateTimePicker
        Left = 16
        Top = 24
        Width = 186
        Height = 21
        CalAlignment = dtaLeft
        Date = 37971.5737926736
        Time = 37971.5737926736
        DateFormat = dfShort
        DateMode = dmComboBox
        Kind = dtkDate
        ParseInput = False
        TabOrder = 0
      end
      object DateTimePicker2: TDateTimePicker
        Left = 216
        Top = 24
        Width = 186
        Height = 21
        CalAlignment = dtaLeft
        Date = 37965.5738176273
        Time = 37965.5738176273
        DateFormat = dfShort
        DateMode = dmComboBox
        Kind = dtkDate
        ParseInput = False
        TabOrder = 1
      end
      object Button1: TButton
        Left = 408
        Top = 24
        Width = 75
        Height = 25
        Caption = 'Button1'
        TabOrder = 2
        OnClick = Button1Click
      end
      object EditResult1: TEdit
        Left = 496
        Top = 24
        Width = 121
        Height = 21
        TabOrder = 3
      end
      object EditDate1: TEdit
        Left = 16
        Top = 72
        Width = 121
        Height = 21
        TabOrder = 4
        Text = '2003-12-16'
      end
      object EditDate2: TEdit
        Left = 168
        Top = 72
        Width = 121
        Height = 21
        TabOrder = 5
        Text = '2002-12-15'
      end
      object Button2: TButton
        Left = 304
        Top = 72
        Width = 75
        Height = 25
        Caption = 'Button2'
        TabOrder = 6
        OnClick = Button2Click
      end
      object EditResult2: TEdit
        Left = 400
        Top = 72
        Width = 121
        Height = 21
        TabOrder = 7
      end
    end
    //*************End of 代码 1 *****************/
    //*************代码 2 *****************/
    unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls, ComCtrls;type
      TForm1 = class(TForm)
        DateTimePicker1: TDateTimePicker;
        DateTimePicker2: TDateTimePicker;
        Button1: TButton;
        EditResult1: TEdit;
        EditDate1: TEdit;
        EditDate2: TEdit;
        Button2: TButton;
        EditResult2: TEdit;
        procedure Button1Click(Sender: TObject);
        procedure Button2Click(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;var
      Form1: TForm1;implementation{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);
    begin
      EditResult1.Text:= formatfloat('#0',(DateTimePicker1.Date-DateTimePicker2.Date));
    end;procedure TForm1.Button2Click(Sender: TObject);
    begin
      try
        EditResult2.Text:= formatfloat('#0',(StrToDate(EditDate1.Text)-StrToDate(EditDate2.Text)));
      except
      end;
    end;end.//************* End of 代码 2 *****************/