helperCreateGetDateWeek.js 1.2 KB

12345678910111213141516171819202122232425262728293031
  1. var setupDefaults = require('./setupDefaults')
  2. var staticWeekTime = require('./staticWeekTime')
  3. var isNumber = require('./isNumber')
  4. var isValidDate = require('./isValidDate')
  5. var getWhatWeek = require('./getWhatWeek')
  6. var helperGetDateTime = require('./helperGetDateTime')
  7. function helperCreateGetDateWeek (getStartDate) {
  8. return function (date, firstDay) {
  9. var viewStartDay = isNumber(firstDay) ? firstDay : setupDefaults.firstDayOfWeek
  10. var targetDate = getWhatWeek(date, 0, viewStartDay, viewStartDay)
  11. if (isValidDate(targetDate)) {
  12. var targetOffsetDate = new Date(targetDate.getFullYear(), targetDate.getMonth(), targetDate.getDate())
  13. var targerStartDate = getStartDate(targetDate)
  14. var targetFirstDay = targerStartDate.getDay()
  15. if (targetFirstDay > viewStartDay) {
  16. targerStartDate.setDate(7 - targetFirstDay + viewStartDay + 1)
  17. }
  18. if (targetFirstDay < viewStartDay) {
  19. targerStartDate.setDate(viewStartDay - targetFirstDay + 1)
  20. }
  21. return Math.floor((helperGetDateTime(targetOffsetDate) - helperGetDateTime(targerStartDate)) / staticWeekTime + 1)
  22. }
  23. return NaN
  24. }
  25. }
  26. module.exports = helperCreateGetDateWeek