1
This commit is contained in:
@@ -0,0 +1,57 @@
|
||||
var setupDefaults = require('./setupDefaults')
|
||||
|
||||
var staticDayTime = require('./staticDayTime')
|
||||
var staticWeekTime = require('./staticWeekTime')
|
||||
|
||||
var helperGetDateTime = require('./helperGetDateTime')
|
||||
|
||||
var toStringDate = require('./toStringDate')
|
||||
|
||||
var isValidDate = require('./isValidDate')
|
||||
var isNumber = require('./isNumber')
|
||||
|
||||
/**
|
||||
* 返回前几周或后几周的星期几
|
||||
*
|
||||
* @param {Date} date 日期
|
||||
* @param {Number} offsetWeek 周(默认当前周)、前几周、后几周
|
||||
* @param {Number} offsetDay 星期天(默认0)、星期一(1)、星期二(2)、星期三(3)、星期四(4)、星期五(5)、星期六(6)
|
||||
* @param {Number} firstDay 周视图的起始天,默认星期一
|
||||
* @return {Date}
|
||||
*/
|
||||
function getWhatWeek (date, offsetWeek, offsetDay, firstDay) {
|
||||
date = toStringDate(date)
|
||||
if (isValidDate(date)) {
|
||||
var hasCustomDay = isNumber(offsetDay)
|
||||
var hasStartDay = isNumber(firstDay)
|
||||
var whatDayTime = helperGetDateTime(date)
|
||||
// 如果指定了天或周视图起始天
|
||||
if (hasCustomDay || hasStartDay) {
|
||||
var viewStartDay = hasStartDay ? firstDay : setupDefaults.firstDayOfWeek
|
||||
var currentDay = date.getDay()
|
||||
var customDay = hasCustomDay ? offsetDay : currentDay
|
||||
if (currentDay !== customDay) {
|
||||
var offsetNum = 0
|
||||
if (viewStartDay > currentDay) {
|
||||
offsetNum = -(7 - viewStartDay + currentDay)
|
||||
} else if (viewStartDay < currentDay) {
|
||||
offsetNum = viewStartDay - currentDay
|
||||
}
|
||||
if (customDay > viewStartDay) {
|
||||
whatDayTime += ((customDay === 0 ? 7 : customDay) - viewStartDay + offsetNum) * staticDayTime
|
||||
} else if (customDay < viewStartDay) {
|
||||
whatDayTime += (7 - viewStartDay + customDay + offsetNum) * staticDayTime
|
||||
} else {
|
||||
whatDayTime += offsetNum * staticDayTime
|
||||
}
|
||||
}
|
||||
}
|
||||
if (offsetWeek && !isNaN(offsetWeek)) {
|
||||
whatDayTime += offsetWeek * staticWeekTime
|
||||
}
|
||||
return new Date(whatDayTime)
|
||||
}
|
||||
return date
|
||||
}
|
||||
|
||||
module.exports = getWhatWeek
|
||||
Reference in New Issue
Block a user