utils.js 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. 'use strict';
  2. Object.defineProperty(exports, '__esModule', { value: true });
  3. const parseTime = (time) => {
  4. const values = (time || "").split(":");
  5. if (values.length >= 2) {
  6. let hours = Number.parseInt(values[0], 10);
  7. const minutes = Number.parseInt(values[1], 10);
  8. const timeUpper = time.toUpperCase();
  9. if (timeUpper.includes("AM") && hours === 12) {
  10. hours = 0;
  11. } else if (timeUpper.includes("PM") && hours !== 12) {
  12. hours += 12;
  13. }
  14. return {
  15. hours,
  16. minutes
  17. };
  18. }
  19. return null;
  20. };
  21. const compareTime = (time1, time2) => {
  22. const value1 = parseTime(time1);
  23. if (!value1)
  24. return -1;
  25. const value2 = parseTime(time2);
  26. if (!value2)
  27. return -1;
  28. const minutes1 = value1.minutes + value1.hours * 60;
  29. const minutes2 = value2.minutes + value2.hours * 60;
  30. if (minutes1 === minutes2) {
  31. return 0;
  32. }
  33. return minutes1 > minutes2 ? 1 : -1;
  34. };
  35. const padTime = (time) => {
  36. return `${time}`.padStart(2, "0");
  37. };
  38. const formatTime = (time) => {
  39. return `${padTime(time.hours)}:${padTime(time.minutes)}`;
  40. };
  41. const nextTime = (time, step) => {
  42. const timeValue = parseTime(time);
  43. if (!timeValue)
  44. return "";
  45. const stepValue = parseTime(step);
  46. if (!stepValue)
  47. return "";
  48. const next = {
  49. hours: timeValue.hours,
  50. minutes: timeValue.minutes
  51. };
  52. next.minutes += stepValue.minutes;
  53. next.hours += stepValue.hours;
  54. next.hours += Math.floor(next.minutes / 60);
  55. next.minutes = next.minutes % 60;
  56. return formatTime(next);
  57. };
  58. exports.compareTime = compareTime;
  59. exports.formatTime = formatTime;
  60. exports.nextTime = nextTime;
  61. exports.padTime = padTime;
  62. exports.parseTime = parseTime;
  63. //# sourceMappingURL=utils.js.map