DateParameterMapper.hpp 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. /*
  2. * Author: Patrick-Christopher Mattulat
  3. * Co-Author: Claude Sonnet 4.6 (LLM)
  4. * Company: Lynar Studios
  5. * E-Mail: webmaster@lynarstudios.com
  6. * Created: 2023-03-31
  7. * Changed: 2026-06-23
  8. *
  9. * */
  10. #ifndef LS_STD_DATE_PARAMETER_MAPPER_HPP
  11. #define LS_STD_DATE_PARAMETER_MAPPER_HPP
  12. #include "DateParameter.hpp"
  13. #include <ls-std/os/dynamic-goal.hpp>
  14. #include <ls-std/time/type/DateParameterTypes.hpp>
  15. #ifdef _WIN32
  16. #define NOMINMAX
  17. #include <windows.h>
  18. #endif
  19. /*
  20. * @doc: class(name: 'DateParameterMapper', package: 'time')
  21. * @doc: time.DateParameterMapper.description('This class maps date information to either an internal POSIX clock or an internal Windows clock, which can then be processed for setting the system time.')
  22. * */
  23. namespace ls::standard::time
  24. {
  25. class LS_STD_DYNAMIC_GOAL DateParameterMapper
  26. {
  27. public:
  28. DateParameterMapper();
  29. ~DateParameterMapper();
  30. #if defined(unix) || defined(__APPLE__)
  31. [[nodiscard]] static ls::standard::time::type::UnixTimestamp toUnixTimestamp(const ls::standard::time::DateParameter &_dateParameter);
  32. #endif
  33. #ifdef _WIN32
  34. [[nodiscard]] static SYSTEMTIME toWindowsSystemTime(const ls::standard::time::DateParameter &_dateParameter);
  35. #endif
  36. };
  37. }
  38. #endif