mactime.h
上传用户:andy_li
上传日期:2007-01-06
资源大小:1019k
文件大小:2k
源码类别:

压缩解压

开发平台:

MultiPlatform

  1. #ifndef _MACTIME_H_
  2. #define _MACTIME_H_
  3. /* -----------------------------------------------------------------------------
  4. The original functions (Metrowerks Codewarrior pro 3.0) gmtime, localtime,
  5. mktime and time do not work correctly. The supplied link library mactime.c
  6. contains replacement functions for them.
  7.  *     Caveat: On a Mac, we only know the GMT and DST offsets for
  8.  *     the current time, not for the time in question.
  9.  *     Mac has no support for DST handling.
  10.  *     DST changeover is all manually set by the user.
  11. ------------------------------------------------------------------------------*/
  12. #include <time.h>
  13. #include <mactypes.h>
  14. /*****************************************************************************/
  15. /*  Macros, typedefs                                                         */
  16. /*****************************************************************************/
  17.   /*
  18.    * ARGH.  Mac times are based on 1904 Jan 1 00:00, not 1970 Jan 1 00:00.
  19.    *  So we have to diddle time_t's appropriately:  add or subtract 66 years'
  20.    *  worth of seconds == number of days times 86400 == (66*365 regular days +
  21.    *  17 leap days ) * 86400 == (24090 + 17) * 86400 == 2082844800L seconds.
  22.    *  We hope time_t is an unsigned long (ulg) on the Macintosh...
  23.    */
  24. /*
  25. This Offset is only used by MacFileDate_to_UTime()
  26. */
  27. #define MACOS_TO_UNIX(x)  (x) -= (unsigned long)MacOS_2_Unix
  28. #define UNIX_TO_MACOS(x)  (x) += (unsigned long)MacOS_2_Unix
  29. /*
  30. The MacOS function GetDateTime returns  the
  31. number of seconds elapsed since midnight, January 1, 1904.
  32. */
  33. extern const unsigned long MacOS_2_Unix;
  34. /* prototypes for public utility functions */
  35. time_t MacFtime2UnixFtime(unsigned long macftime);
  36. unsigned long UnixFtime2MacFtime(time_t unxftime);
  37. time_t  AdjustForTZmoveMac(unsigned long macloctim, long s_gmtoffs);
  38. Boolean GetGMToffsetMac(unsigned long macftime, long *UTCoffset);
  39. #endif