getWhatQuarter.js 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. var getWhatMonth = require('./getWhatMonth')
  2. var toStringDate = require('./toStringDate')
  3. var isValidDate = require('./isValidDate')
  4. function getQuarterNumber (date) {
  5. var month = date.getMonth()
  6. if (month < 3) {
  7. return 1
  8. } else if (month < 6) {
  9. return 2
  10. } else if (month < 9) {
  11. return 3
  12. }
  13. return 4
  14. }
  15. /**
  16. * 返回前几季度或后几季度的日期
  17. *
  18. * @param {Date} date 日期
  19. * @param {Number} offset 季度(默认当前季度)、前几季度、后几季度
  20. * @param {Number} day 获取哪天:月初(first)、月末(last)、指定天数(数值),如果为空,但超过指定月份的天数时,则默认单月最后一天
  21. * @return {Date}
  22. */
  23. function getWhatQuarter (date, offset, day) {
  24. var currMonth, monthOffset = offset && !isNaN(offset) ? offset * 3 : 0
  25. date = toStringDate(date)
  26. if (isValidDate(date)) {
  27. currMonth = (getQuarterNumber(date) - 1) * 3
  28. date.setMonth(currMonth)
  29. return getWhatMonth(date, monthOffset, day)
  30. }
  31. return date
  32. }
  33. module.exports = getWhatQuarter