TimeUtil.h 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. /*
  2. * Copyright 2005 - 2016 Zarafa and its licensors
  3. *
  4. * This program is free software: you can redistribute it and/or modify
  5. * it under the terms of the GNU Affero General Public License, version 3,
  6. * as published by the Free Software Foundation.
  7. *
  8. * This program is distributed in the hope that it will be useful,
  9. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  10. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  11. * GNU Affero General Public License for more details.
  12. *
  13. * You should have received a copy of the GNU Affero General Public License
  14. * along with this program. If not, see <http://www.gnu.org/licenses/>.
  15. *
  16. */
  17. #ifndef TIMEZONE_UTIL_H
  18. #define TIMEZONE_UTIL_H
  19. #include <kopano/zcdefs.h>
  20. namespace KC {
  21. /* MAPI TimeZoneStruct named property */
  22. struct TIMEZONE_STRUCT {
  23. // The bias values (bias, stdbias and dstbias) are the opposite of what you expect.
  24. // Thus +1 hour becomes -60, +2 hours becomes -120, -3 becomes +180
  25. LONG lBias; /* nl: -1*60, jp: -9*60 */
  26. LONG lStdBias; /* nl: 0, jp: 0 (wintertijd) */
  27. LONG lDstBias; /* nl: -1*60: jp: 0 (zomertijd) */
  28. WORD wStdYear;
  29. SYSTEMTIME stStdDate; /* 2->3, dus 3 in wHour */
  30. WORD wDstYear;
  31. SYSTEMTIME stDstDate; /* 3->2, dus 2 in wHour */
  32. };
  33. time_t getDateByYearMonthWeekDayHour(WORD year, WORD month, WORD week, WORD day, WORD hour);
  34. LONG getTZOffset(time_t date, TIMEZONE_STRUCT sTimeZone);
  35. extern _kc_export time_t LocalToUTC(time_t local, TIMEZONE_STRUCT);
  36. extern _kc_export time_t UTCToLocal(time_t utc, TIMEZONE_STRUCT);
  37. } /* namespace */
  38. #endif