util.js 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. export const parseTime = time => {
  2. const values = (time || '').split(':')
  3. if (values.length >= 2) {
  4. const hours = parseInt(values[0], 10)
  5. const minutes = parseInt(values[1], 10)
  6. return {
  7. hours,
  8. minutes
  9. }
  10. }
  11. return null
  12. }
  13. export const compareTime = (time1, time2) => {
  14. const value1 = parseTime(time1)
  15. const value2 = parseTime(time2)
  16. const minutes1 = value1.minutes + value1.hours * 60
  17. const minutes2 = value2.minutes + value2.hours * 60
  18. if (minutes1 === minutes2) {
  19. return 0
  20. }
  21. return minutes1 > minutes2 ? 1 : -1
  22. }
  23. export const formatTime = (time) => {
  24. return (
  25. (time.hours < 10 ? '0' + time.hours : time.hours) +
  26. ':' +
  27. (time.minutes < 10 ? '0' + time.minutes : time.minutes)
  28. )
  29. }
  30. export const nextTime = (time, step) => {
  31. const timeValue = parseTime(time)
  32. const stepValue = parseTime(step)
  33. const next = {
  34. hours: timeValue.hours,
  35. minutes: timeValue.minutes
  36. }
  37. next.minutes += stepValue.minutes
  38. next.hours += stepValue.hours
  39. next.hours += Math.floor(next.minutes / 60)
  40. next.minutes = next.minutes % 60
  41. return formatTime(next)
  42. }