home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / zfamily.zip / zfamily / ZDTFUNCS / SAMPLE / TSTCHECK.INC < prev    next >
Text File  |  1993-09-02  |  4KB  |  124 lines

  1. /*
  2. ** /----------------------------------------------------------------------\
  3. ** |             IBM Z Family Reusable Libraries/2 (5641-504)             |
  4. ** |----------------------------------------------------------------------|
  5. ** | (C) Copyright International Business Machines Corporation 1993, 1994 |
  6. ** |----------------------------------------------------------------------|
  7. ** |                       DISCLAIMER OF WARRANTIES                       |
  8. ** |                       ------------------------                       |
  9. ** | The following code is sample code created by IBM Corporation.        |
  10. ** | Such a code is provided to you solely for the purpose of assisting   |
  11. ** | you in the development of your applications. The code is provided    |
  12. ** | "AS IS", without warranty of any kind.  IBM shall not be liable for  |
  13. ** | any damages arising out of your use of the following code, even if   |
  14. ** | they have been advised of the possibility of such damages.           |                                                                         *
  15. ** \----------------------------------------------------------------------/
  16. **
  17. **  Include : TSTCHECK.INC
  18. **  Authors : Alessandro Cavallini (CAVALLI at ROMEPPC)
  19. **            Dario de Judicibus (DEJUDICI at ROMEPPC)
  20. **  Created : 21 Jul 1992
  21. **  Updated : 01 Sep 1993
  22. **  Version : 4.12
  23. **  Content : Called in WM_COMMAND (case CHKDTECHKBUT)
  24. **
  25. */
  26. {
  27.   CHAR szDay[3]   ; // Input day of month
  28.   CHAR szMonth[3] ; // Input month of year
  29.   CHAR szYear[5]  ; // Input year (long format)
  30.   CHAR *any ;       // Scratch pointer
  31.  
  32.   CHAR szTemp[tstMAXSTRLEN] ; // Local scratch memory
  33.  
  34.   zdtDATE date ;    // Input date
  35.  
  36.  /*
  37.  **  Get the address of the variable connected to the Dialog
  38.  */
  39.   Chkdte = (CHKDTEStruct *)WinQueryWindowULong(hWndClient, OFFSET_CHKDTE) ;
  40.  
  41.  /*
  42.  **  Query the string value in the entry field controls and
  43.  **  move the string value to the dialog structure variables
  44.  */
  45.   WinQueryDlgItemText(hWndDlg, CHKDTEDAYFLD, sizeof(szDay), szDay ) ;
  46.   Chkdte->ChkDteDay = atol(szDay) ;
  47.  
  48.   WinQueryDlgItemText(hWndDlg, CHKDTEMTHFLD, sizeof(szMonth), szMonth ) ;
  49.   Chkdte->ChkDteMonth = atol(szMonth) ;
  50.  
  51.   WinQueryDlgItemText(hWndDlg, CHKDTEYEAFLD, sizeof(szYear), szYear ) ;
  52.   Chkdte->ChkDteYear = atol(szYear) ;
  53.  
  54.  /*
  55.  **  Compute output values
  56.  */
  57.   date = zdtNewDate ( (zdtYEAR) (Chkdte->ChkDteYear ) ,
  58.                       (zdtMONTH)(Chkdte->ChkDteMonth) ,
  59.                       (zdtDAY)  (Chkdte->ChkDteDay  )) ;
  60.  
  61.   if (date == zdtINVALID)
  62.   {
  63.     WinLoadString(hAB, 0, tstERR_INVALIDDATE, tstMAXSTRLEN, szTemp) ;
  64.     WinMessageBox(HWND_DESKTOP,
  65.                   HWND_DESKTOP,
  66.                   szTemp, 0, 0,
  67.                   MB_OK|MB_ERROR) ;
  68.  
  69.    /*
  70.    **  Let's clear all output fields
  71.    */
  72.     #include "TSTCLEAR.INC"
  73.   }
  74.   else
  75.   {
  76.     any = zdtWeekdayName(date, Chkdte->ChkDteWeekday) ;
  77.     any = zdtMonthName(date, Chkdte->ChkDteMonthName) ;
  78.     Chkdte->ChkDteDayInYear  = (long)zdtDayOfYear(date) ;
  79.     Chkdte->ChkDteJulianDate = (long)zdtAsJulian(date) ;
  80.     Chkdte->ChkDteWeekOfYear = (long)zdtWeekOfYear(date) ;
  81.  
  82.     if (zdtIsLeapYear(zdtYear(date)))
  83.     {
  84.       Chkdte->ChkDteLeapYear = 1 ;
  85.     }
  86.     else
  87.     {
  88.       Chkdte->ChkDteLeapYear = 0 ;
  89.     }
  90.  
  91.    /*
  92.    **  Display output values
  93.    */
  94.     WinSendDlgItemMsg(hWndDlg, CHKDTEWKDFLD, EM_SETTEXTLIMIT, MPFROMSHORT(32), 0L) ;
  95.     if (Chkdte->ChkDteWeekday[0])
  96.       WinSetDlgItemText(hWndDlg, CHKDTEWKDFLD, Chkdte->ChkDteWeekday) ;
  97.  
  98.     WinSendDlgItemMsg(hWndDlg, CHKDTEMTNFLD, EM_SETTEXTLIMIT, MPFROMSHORT(32), 0L) ;
  99.     if (Chkdte->ChkDteMonthName[0])
  100.       WinSetDlgItemText(hWndDlg, CHKDTEMTNFLD, Chkdte->ChkDteMonthName) ;
  101.  
  102.     if (Chkdte->ChkDteDayInYear != 0)
  103.     {
  104.       _ltoa(Chkdte->ChkDteDayInYear, szTemp, 10) ;
  105.       WinSetDlgItemText(hWndDlg, CHKDTEDIYFLD, szTemp) ;
  106.     }
  107.  
  108.     if (Chkdte->ChkDteJulianDate != 0)
  109.     {
  110.       sprintf(szTemp,"%05ld",Chkdte->ChkDteJulianDate) ;
  111.       WinSetDlgItemText(hWndDlg, CHKDTEJULFLD, szTemp) ;
  112.     }
  113.  
  114.     if (Chkdte->ChkDteWeekOfYear != 0)
  115.     {
  116.       _ltoa(Chkdte->ChkDteWeekOfYear, szTemp, 10) ;
  117.       WinSetDlgItemText(hWndDlg, CHKDTEWEKFLD, szTemp) ;
  118.     }
  119.  
  120.     WinSendDlgItemMsg(hWndDlg, CHKDTELPYCHK, BM_SETCHECK,
  121.       MPFROMSHORT(Chkdte->ChkDteLeapYear), 0L);
  122.   }
  123. }
  124.