home *** CD-ROM | disk | FTP | other *** search
/ Monster Media 1994 #1 / monster.zip / monster / PROG_C / SNPD9404.ZIP / DD_STRUC.H < prev    next >
C/C++ Source or Header  |  1994-04-03  |  1KB  |  32 lines

  1. /*
  2. ** DosDate macros - access bitfield values from DOS file date & time
  3. **  for Borland C and C++ compilers by: Wayne Hamilton
  4. */
  5.  
  6. #define dd_yr(d)      (((struct { unsigned day:5, mo:4, yr:7; } *) &d)->yr)
  7. #define dd_mo(d)      (((struct { unsigned day:5, mo:4, yr:7; } *) &d)->mo)
  8. #define dd_day(d)     (((struct { unsigned day:5, mo:4, yr:7; } *) &d)->day)
  9. #define dd_hr(t)      (((struct { unsigned sec:5, mn:6, hr:5; } *) &t)->hr)
  10. #define dd_mn(t)      (((struct { unsigned sec:5, mn:6, hr:5; } *) &t)->mn)
  11. #define dd_sec(t)     (((struct { unsigned sec:5, mn:6, hr:5; } *) &t)->sec)
  12.  
  13. /* then: year = dd_yr(ffblk.ff_date); */
  14.  
  15. #ifdef TEST
  16.  
  17. #include <stdio.h>
  18. #include <dir.h>
  19.  
  20. main(int argc, char *argv[])
  21. {
  22.       struct ffblk ff;
  23.  
  24.       findfirst(argv[0], &ff, 0xff);
  25.       printf("%s was saved on %d-%d-%d at %d:%02d:%02d\n", argv[0],
  26.             dd_mo(ff.ff_fdate), dd_day(ff.ff_fdate), dd_yr(ff.ff_fdate),
  27.             dd_hr(ff.ff_ftime), dd_mn(ff.ff_ftime), 2 * dd_sec(ff.ff_ftime));
  28.       return 0;
  29. }
  30.  
  31. #endif
  32.