You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					44 lines
				
				1.0 KiB
			
		
		
			
		
	
	
					44 lines
				
				1.0 KiB
			| 
											2 years ago
										 | import { MS, Y, D, W } from '../../constant'; | ||
|  | export default (function (o, c, d) { | ||
|  |   var proto = c.prototype; | ||
|  | 
 | ||
|  |   proto.week = function (week) { | ||
|  |     if (week === void 0) { | ||
|  |       week = null; | ||
|  |     } | ||
|  | 
 | ||
|  |     if (week !== null) { | ||
|  |       return this.add((week - this.week()) * 7, D); | ||
|  |     } | ||
|  | 
 | ||
|  |     var yearStart = this.$locale().yearStart || 1; | ||
|  | 
 | ||
|  |     if (this.month() === 11 && this.date() > 25) { | ||
|  |       // d(this) is for badMutable
 | ||
|  |       var nextYearStartDay = d(this).startOf(Y).add(1, Y).date(yearStart); | ||
|  |       var thisEndOfWeek = d(this).endOf(W); | ||
|  | 
 | ||
|  |       if (nextYearStartDay.isBefore(thisEndOfWeek)) { | ||
|  |         return 1; | ||
|  |       } | ||
|  |     } | ||
|  | 
 | ||
|  |     var yearStartDay = d(this).startOf(Y).date(yearStart); | ||
|  |     var yearStartWeek = yearStartDay.startOf(W).subtract(1, MS); | ||
|  |     var diffInWeek = this.diff(yearStartWeek, W, true); | ||
|  | 
 | ||
|  |     if (diffInWeek < 0) { | ||
|  |       return d(this).startOf('week').week(); | ||
|  |     } | ||
|  | 
 | ||
|  |     return Math.ceil(diffInWeek); | ||
|  |   }; | ||
|  | 
 | ||
|  |   proto.weeks = function (week) { | ||
|  |     if (week === void 0) { | ||
|  |       week = null; | ||
|  |     } | ||
|  | 
 | ||
|  |     return this.week(week); | ||
|  |   }; | ||
|  | }); |