home *** CD-ROM | disk | FTP | other *** search
/ CD Shareware Magazine 1996 December / CD_shareware_12-96.iso / WIN / Programa / ADDATE32.ZIP / DEMODATE.ZIP / DATEDEMO.PAS < prev    next >
Encoding:
Pascal/Delphi Source File  |  1996-06-20  |  14.0 KB  |  414 lines

  1. unit Datedemo;
  2.  
  3. interface
  4.  
  5. uses WinTypes, WinProcs, Classes, Graphics, Forms, Controls, Menus,
  6.   Dialogs, StdCtrls, Buttons, ExtCtrls, SysUtils, AdDate,
  7.   TabNotBk, Spin;
  8.  
  9. type
  10.   TTAdrockDatesForm = class(TForm)
  11.     ScrollBox1: TScrollBox;
  12.     Label56: TLabel;
  13.     Panel2: TPanel;
  14.     Label3: TLabel;
  15.     WorkDateField: TEdit;
  16.     RefreshButton: TBitBtn;
  17.     SpinButton1: TSpinButton;
  18.     GroupBox2: TGroupBox;
  19.     Label2: TLabel;
  20.     Label6: TLabel;
  21.     Label7: TLabel;
  22.     Label8: TLabel;
  23.     Label9: TLabel;
  24.     PrevBusinessDayLabel: TLabel;
  25.     IsHolidayLabel: TLabel;
  26.     IsBusinessHolidayLabel: TLabel;
  27.     NextBusinessDayLabel: TLabel;
  28.     isBusinessDayLabel: TLabel;
  29.     Panel3: TPanel;
  30.     HolidaylistBox: TListBox;
  31.     GroupBox3: TGroupBox;
  32.     Bevel4: TBevel;
  33.     Bevel9: TBevel;
  34.     Bevel8: TBevel;
  35.     Label34: TLabel;
  36.     DaysBetweenDatesLabel: TLabel;
  37.     Label38: TLabel;
  38.     WeeksBetweenDatesLabel: TLabel;
  39.     Label40: TLabel;
  40.     MonthsBetweenDatesLabel: TLabel;
  41.     Label42: TLabel;
  42.     YearsBetweenDatesLabel: TLabel;
  43.     Label36: TLabel;
  44.     BoundryWeeksBetweenDatesLabel: TLabel;
  45.     Label39: TLabel;
  46.     BoundryMonthsBetweenDatesLabel: TLabel;
  47.     Label43: TLabel;
  48.     BoundryYearsBetweenDatesLabel: TLabel;
  49.     Label45: TLabel;
  50.     BoundryQuartersBetweenDatesLabel: TLabel;
  51.     Label64: TLabel;
  52.     QuartersBetweenDatesLabel: TLabel;
  53.     Label4: TLabel;
  54.     BusinessDaysBetweenDatesLabel: TLabel;
  55.     Label31: TLabel;
  56.     DaysAgoLabel: TLabel;
  57.     Label33: TLabel;
  58.     WeeksAgoLabel: TLabel;
  59.     Label35: TLabel;
  60.     MonthsAgoLabel: TLabel;
  61.     Label37: TLabel;
  62.     YearsAgoLabel: TLabel;
  63.     Label46: TLabel;
  64.     QuartersAgoLabel: TLabel;
  65.     GroupBox4: TGroupBox;
  66.     Bevel6: TBevel;
  67.     Label22: TLabel;
  68.     SelectedDateLabel: TLabel;
  69.     Label23: TLabel;
  70.     SelectedDayLabel: TLabel;
  71.     Label25: TLabel;
  72.     SelectedMonthLabel: TLabel;
  73.     Label26: TLabel;
  74.     Label27: TLabel;
  75.     DayOfWeekLabel: TLabel;
  76.     DayOfYearLabel: TLabel;
  77.     Label32: TLabel;
  78.     Label28: TLabel;
  79.     WeekOfYearLabel: TLabel;
  80.     WeekOfMonthLabel: TLabel;
  81.     Label30: TLabel;
  82.     Label24: TLabel;
  83.     CenturyLabel: TLabel;
  84.     Quarter: TLabel;
  85.     QuarterLabel: TLabel;
  86.     Label29: TLabel;
  87.     DayThLabel: TLabel;
  88.     Label41: TLabel;
  89.     DelphiDayOfWeekLabel: TLabel;
  90.     Label44: TLabel;
  91.     Label1: TLabel;
  92.     DaysLeftInYearLabel: TLabel;
  93.     Label63: TLabel;
  94.     DayOfMonthLabel: TLabel;
  95.     Label65: TLabel;
  96.     Label62: TLabel;
  97.     DaysLeftInMonthLabel: TLabel;
  98.     SelectedYearLabel: TLabel;
  99.     GroupBox6: TGroupBox;
  100.     Label51: TLabel;
  101.     AddDateLabel: TLabel;
  102.     Label57: TLabel;
  103.     Label58: TLabel;
  104.     DateDiffLabel: TLabel;
  105.     SelectedDatelabel1: TLabel;
  106.     Label59: TLabel;
  107.     Label60: TLabel;
  108.     Label61: TLabel;
  109.     Label66: TLabel;
  110.     AddDateType: TEdit;
  111.     AddDateNumber: TEdit;
  112.     DateDiffType: TEdit;
  113.     UpdateAddDateButton: TBitBtn;
  114.     UpdateDateDiffButton: TBitBtn;
  115.     GroupBox1: TGroupBox;
  116.     Label48: TLabel;
  117.     SelectedDatePlus1DayLabel: TLabel;
  118.     Label50: TLabel;
  119.     Label47: TLabel;
  120.     Label54: TLabel;
  121.     SelectedDatePlus1WeekLabel: TLabel;
  122.     SelectedDatePlus1MonthLabel: TLabel;
  123.     SelectedDatePlus1YearLabel: TLabel;
  124.     Label49: TLabel;
  125.     SelectedDateMinus1DayLabel: TLabel;
  126.     Label52: TLabel;
  127.     Label53: TLabel;
  128.     Label55: TLabel;
  129.     SelectedDateMinus1WeekLabel: TLabel;
  130.     SelectedDateMinus1MonthLabel: TLabel;
  131.     SelectedDateMinus1YearLabel: TLabel;
  132.     Bevel5: TBevel;
  133.     Panel1: TPanel;
  134.     Label14: TLabel;
  135.     Label13: TLabel;
  136.     Label16: TLabel;
  137.     Label18: TLabel;
  138.     Label20: TLabel;
  139.     Label11: TLabel;
  140.     Label5: TLabel;
  141.     Label74: TLabel;
  142.     Label80: TLabel;
  143.     Label82: TLabel;
  144.     Label84: TLabel;
  145.     Label92: TLabel;
  146.     Label93: TLabel;
  147.     Label94: TLabel;
  148.     Panel4: TPanel;
  149.     GroupBox5: TGroupBox;
  150.     VerbalLabel: TLabel;
  151.     GroupBox7: TGroupBox;
  152.     Bevel2: TBevel;
  153.     Bevel1: TBevel;
  154.     Bevel3: TBevel;
  155.     Label10: TLabel;
  156.     isMondayLabel: TLabel;
  157.     Label12: TLabel;
  158.     isWednesdayLabel: TLabel;
  159.     Label15: TLabel;
  160.     isThursdayLabel: TLabel;
  161.     Label17: TLabel;
  162.     isSaturdayLabel: TLabel;
  163.     Label19: TLabel;
  164.     isSundayLabel: TLabel;
  165.     Label21: TLabel;
  166.     isWeekendLabel: TLabel;
  167.     Label69: TLabel;
  168.     isWeekDayLabel: TLabel;
  169.     Label71: TLabel;
  170.     IsFridaylabel: TLabel;
  171.     Label73: TLabel;
  172.     isTuesdayLabel: TLabel;
  173.     Label75: TLabel;
  174.     isChristmasDayLabel: TLabel;
  175.     Label77: TLabel;
  176.     isNewYearsDayLabel: TLabel;
  177.     Label79: TLabel;
  178.     isJanuaryLabel: TLabel;
  179.     Label81: TLabel;
  180.     isMarchLabel: TLabel;
  181.     Label83: TLabel;
  182.     isFebruarylabel: TLabel;
  183.     Label67: TLabel;
  184.     Label88: TLabel;
  185.     Label89: TLabel;
  186.     Label90: TLabel;
  187.     Label91: TLabel;
  188.     Label68: TLabel;
  189.     Label85: TLabel;
  190.     Label86: TLabel;
  191.     Label87: TLabel;
  192.     isAprilLabel: TLabel;
  193.     isMayLabel: TLabel;
  194.     isJulylabel: TLabel;
  195.     isAugustLabel: TLabel;
  196.     isSeptemberLabel: TLabel;
  197.     isOctoberLabel: TLabel;
  198.     IsDecemberLabel: TLabel;
  199.     isNovemberLabel: TLabel;
  200.     isJuneLabel: TLabel;
  201.     Bevel7: TBevel;
  202.     Label70: TLabel;
  203.     Label72: TLabel;
  204.     FirstOfAWeekLabel: TLabel;
  205.     Label78: TLabel;
  206.     LastOfAWeekLabel: TLabel;
  207.     Label76: TLabel;
  208.     Label95: TLabel;
  209. {    procedure UpdateAddDateButtonClick(Sender: TObject);}
  210.     procedure FormCreate(Sender: TObject);
  211.     procedure UpdateDateDiffButtonClick(Sender: TObject);
  212.     procedure RefreshButtonClick(Sender: TObject);
  213.     procedure SpinButton1DownClick(Sender: TObject);
  214.     procedure SpinButton1UpClick(Sender: TObject);
  215.     procedure UpdateAddDateButtonClick(Sender: TObject);
  216.   private
  217.     { Private declarations }
  218.   public
  219.     { Public declarations }
  220.     Function ReturnYesNo(State : Boolean) : String;
  221.     procedure Refresh;
  222.   end;
  223.  
  224. var
  225.   TAdrockDatesForm: TTAdrockDatesForm;
  226.   CellsImage  : Array [1..42] of String;
  227.   Cells       : Array [1..42] of String;
  228.  
  229. implementation
  230.  
  231. {$R *.DFM}
  232.  
  233.  
  234.  
  235. procedure TTAdrockDatesForm.FormCreate(Sender: TObject);
  236. Var
  237.   Pos : Integer;
  238. begin
  239.   WorkDateField.Text := DateToStr(Date);
  240.   Refresh;
  241. end;
  242.  
  243.  
  244.  
  245. procedure TTAdrockDatesForm.Refresh;
  246. Var
  247.  WorkDate : TDateTime;
  248. begin
  249.   if (IsEmptyDate(WorkDateField.text) = TRUE) then
  250.    begin
  251.     MessageDlg('You must specify a date, please enter a valid date!', mtWarning, [mbOK],0);
  252.     exit;
  253.    end;
  254.  
  255.  if (IsValidDate(WorkDateField.text) = FALSE) then
  256.    begin
  257.     MessageDlg('The date "'+WorkDateField.Text+'" is not a date that can be recognised, please re-enter a valid date!',
  258.       mtWarning, [mbOK],0);
  259.     exit;
  260.    end;
  261.  
  262.      { The functions that are using 2 mean that the starting ssay of the week is a }
  263.      { monday, Since 1=Sunday, 2=Monday, etc.. }
  264.  
  265.      { Set the holiday string list.This string list contains dates that refer to holidays, the IsHoliday function uses
  266.        the holiday list if it is found to test for holidays, and the business functions except for IsBusinessDay also
  267.        use the holidays string list, it is has been defined.
  268.      }
  269.      SetHolidayStringList(HolidaylistBox.Items);
  270.  
  271.      WorkDate := StrToDate(WorkDateField.text);
  272.      SelectedDateLabel.Caption := DateToStr(WorkDate);
  273.      SelectedDayLabel.Caption := IntToStr(ReturnDayOfMonth(WorkDate));
  274.      SelectedMonthLabel.Caption := IntToStr(ReturnMonth(WorkDate));
  275.      SelectedYearLabel.Caption := IntToStr(ReturnYear(WorkDate));
  276.  
  277.      DayOfWeekLabel.Caption := IntToStr(ReturnDayOfWeek(2, WorkDate))+
  278.                             ', '+ReturnWeekDayName(2,
  279.                              ReturnDayOfWeek(2, WorkDate));
  280.  
  281.      DelphiDayOfWeekLabel.Caption := IntToStr(ReturnDelphiDayOfWeek(2,
  282.         ReturnDayOfWeek(2, WorkDate)));
  283.  
  284.      DayOfYearLabel.Caption := IntToStr(ReturnDayOfYear(WorkDate));
  285.      DaysLeftInyearLabel.Caption := IntToStr(DaysLeftInyear(WorkDate));
  286.      DayOfMonthLabel.Caption := IntToStr(ReturnDayOfMonth(WorkDate));
  287.      DaysLeftInMonthLabel.Caption := IntToStr(DaysLeftInMonth(WorkDate));
  288.      WeekOfMonthLabel.Caption := IntToStr(ReturnWeekofMonth(2, WorkDate));
  289.      WeekOfYearLabel.Caption := IntToStr(ReturnWeekofYear(2, WorkDate));
  290.      QuarterLabel.Caption := IntToStr(ReturnQuarter(WorkDate));
  291.      CenturyLabel.Caption := IntToStr(ReturnCentury(WorkDate));
  292.  
  293.      DayThLabel.Caption := ReturnDayTh(WorkDate)+',  '+
  294.        IntToStr(ReturnDayOfMonth(WorkDate))+
  295.        ReturnDayTh(WorkDate);
  296.  
  297.      DaysAgoLabel.Caption := ReturnDaysAgo(WorkDate);
  298.      WeeksAgoLabel.Caption := ReturnWeeksAgo(2, WorkDate);
  299.     MonthsAgoLabel.Caption := ReturnMonthsAgo(WorkDate);
  300.      QuartersAgoLabel.Caption := ReturnQuartersAgo(WorkDate);
  301.      YearsAgoLabel.Caption := ReturnYearsAgo(WorkDate);
  302.  
  303.      DaysBetweenDatesLabel.Caption := IntToStr(ReturnDaysBetweenDates(WorkDate, Date));
  304.      BusinessDaysBetweenDatesLabel.Caption :=
  305.          IntToStr(ReturnBusinessDaysBetweenDates(WorkDate, Date));
  306.      WeeksBetweenDatesLabel.Caption := IntToStr(ReturnWeeksBetweenDates(WorkDate, Date));
  307.      MonthsBetweenDatesLabel.Caption := IntToStr(ReturnMonthsBetweenDates(WorkDate, Date));
  308.      QuartersBetweenDatesLabel.Caption := IntToStr(ReturnQuartersBetweenDates(WorkDate, Date));
  309.      YearsBetweenDatesLabel.Caption := IntToStr(ReturnYearsBetweenDates(WorkDate, Date));
  310.  
  311.      BoundryWeeksBetweenDatesLabel.Caption :=
  312.          IntToStr(ReturnBoundaryWeeksBetweenDates(2, WorkDate, Date));
  313.      BoundryMonthsBetweenDatesLabel.Caption :=
  314.          IntToStr(ReturnBoundaryMonthsBetweenDates(WorkDate, Date));
  315.      BoundryQuartersBetweenDatesLabel.Caption :=
  316.          IntToStr(ReturnBoundaryQuartersBetweenDates(WorkDate, Date));
  317.      BoundryYearsBetweenDatesLabel.Caption :=
  318.          IntToStr(ReturnBoundaryYearsBetweenDates(WorkDate, Date));
  319.  
  320.      SelectedDatelabel1.Caption      := DateToStr(Date);
  321.      SelectedDatePlus1DayLabel.Caption    := DateToStr(AddDays(1, WorkDate));
  322.      SelectedDatePlus1WeekLabel.Caption   := DateToStr(AddWeeks(1, WorkDate));
  323.      SelectedDatePlus1MonthLabel.Caption  := DateToStr(AddMonths(1, WorkDate));
  324.      SelectedDatePlus1YearLabel.Caption   := DateToStr(AddYears(1, WorkDate));
  325.  
  326.      SelectedDateMinus1DayLabel.Caption    := DateToStr(AddDays(-1, WorkDate));
  327.      SelectedDateMinus1WeekLabel.Caption   := DateToStr(AddWeeks(-1, WorkDate));
  328.      SelectedDateMinus1MonthLabel.Caption  := DateToStr(AddMonths(-1, WorkDate));
  329.      SelectedDateMinus1YearLabel.Caption   := DateToStr(AddYears(-1, WorkDate));
  330.  
  331.      isBusinessDayLabel.Caption                 := ReturnYesNo(IsBusinessDay(WorkDate));
  332.      IsHolidayLabel.Caption                     := ReturnyesNo(IsHoliday(WorkDate));
  333.      isBusinessHolidayLabel.Caption             := ReturnyesNo(isBusinessHoliday(WorkDate));
  334.  
  335.      isMondayLabel.Caption                 := ReturnYesNo(IsMonday(WorkDate));
  336.      isTuesdayLabel.Caption                := ReturnYesNo(IsTuesday(WorkDate));
  337.      isWednesdayLabel.Caption              := ReturnYesNo(IsWednesday(WorkDate));
  338.      isThursdayLabel.Caption               := ReturnYesNo(IsThursday(WorkDate));
  339.      isFridayLabel.Caption                 := ReturnYesNo(IsFriday(WorkDate));
  340.      isSaturdayLabel.Caption               := ReturnYesNo(IsSaturday(WorkDate));
  341.      isSundayLabel.Caption                 := ReturnYesNo(IsSunday(WorkDate));
  342.  
  343.      isWeekendLabel.Caption                := ReturnYesNo(IsWeekend(WorkDate));
  344.      isWeekdayLabel.Caption                := ReturnYesNo(IsWeekday(WorkDate));
  345.  
  346.      isChristmasDayLabel.Caption           := ReturnYesNo(IsChristmasDay(WorkDate));
  347.      isNewYearsDayLabel.Caption            := ReturnYesNo(IsNewYearsDay(WorkDate));
  348.  
  349.      isJanuaryLabel.Caption                := ReturnYesNo(IsJanuary(WorkDate));
  350.      isFebruaryLabel.Caption               := ReturnYesNo(IsFebruary(WorkDate));
  351.      isMarchLabel.Caption                  := ReturnYesNo(IsMarch(WorkDate));
  352.      isAprilLabel.Caption                  := ReturnYesNo(IsApril(WorkDate));
  353.      isMayLabel.Caption                    := ReturnYesNo(IsMay(WorkDate));
  354.      isJuneLabel.Caption                   := ReturnYesNo(IsJune(WorkDate));
  355.      isJulyLabel.Caption                   := ReturnYesNo(IsJuly(WorkDate));
  356.      isAugustLabel.Caption                 := ReturnYesNo(IsAugust(WorkDate));
  357.      isSeptemberLabel.Caption              := ReturnYesNo(IsSeptember(WorkDate));
  358.      isOctoberLabel.Caption                := ReturnYesNo(IsOctober(WorkDate));
  359.      isNovemberLabel.Caption               := ReturnYesNo(IsNovember(WorkDate));
  360.      isDecemberLabel.Caption               := ReturnYesNo(IsDecember(WorkDate));
  361.  
  362.      NextBusinessDayLabel.Caption := DateToStr(NextBusinessDay(WorkDate));
  363.      PrevBusinessDayLabel.Caption := DateToStr(PrevBusinessDay(WorkDate));
  364.  
  365.      VerbalLabel.Caption := VerbalDate(WorkDate);
  366.  
  367.      FirstOfAWeekLabel.Caption := DateToStr(ReturnFirstOfAWeek(2, WorkDate));
  368.      LastOfAWeekLabel.Caption  := DateToStr(ReturnLastOfAWeek(2, WorkDate));
  369.  
  370.      UpdateAddDateButtonClick(Self);
  371.      UpdateDateDiffButtonClick(Self);
  372. end;
  373.  
  374. Function TTAdrockDatesForm.ReturnYesNo(State : Boolean) : String;
  375. begin
  376.  if (State = TRUE) then
  377.    Result := 'Yes'
  378.  else
  379.    Result := 'No';
  380. end;
  381.  
  382. procedure TTAdrockDatesForm.UpdateDateDiffButtonClick(Sender: TObject);
  383. begin
  384.   SetHolidayStringList(HolidayListBox.Items);
  385.   DateDiffLabel.Caption := IntToStr(DateDiff(DateDiffType.Text, 2, StrToDate(WorkDateField.Text),Date));
  386. end;
  387.  
  388.  
  389. procedure TTAdrockDatesForm.RefreshButtonClick(Sender: TObject);
  390. begin
  391.      Refresh;
  392. end;
  393.  
  394. procedure TTAdrockDatesForm.SpinButton1DownClick(Sender: TObject);
  395. begin
  396.      WorkDateField.Text := DateToStr(StrToDate(WorkDateField.Text)-1);
  397.      Refresh;
  398. end;
  399.  
  400. procedure TTAdrockDatesForm.SpinButton1UpClick(Sender: TObject);
  401. begin
  402.      WorkDateField.Text := DateToStr(StrToDate(WorkDateField.Text)+1);
  403.      Refresh;
  404. end;
  405.  
  406. procedure TTAdrockDatesForm.UpdateAddDateButtonClick(Sender: TObject);
  407. begin
  408.   AddDateLabel.Caption :=DateToStr(AddDate(AddDateType.Text, StrToInt(AddDateNumber.Text),
  409.     StrToDate(WorkDateField.Text)));
  410. end;
  411.  
  412. end.
  413.  
  414.