48 lines
		
	
	
		
			1019 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			48 lines
		
	
	
		
			1019 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| 'use strict';
 | |
| 
 | |
| var DayWithinYear = require('./DayWithinYear');
 | |
| var InLeapYear = require('./InLeapYear');
 | |
| 
 | |
| // https://ecma-international.org/ecma-262/5.1/#sec-15.9.1.4
 | |
| 
 | |
| module.exports = function MonthFromTime(t) {
 | |
| 	var day = DayWithinYear(t);
 | |
| 	if (0 <= day && day < 31) {
 | |
| 		return 0;
 | |
| 	}
 | |
| 	var leap = InLeapYear(t);
 | |
| 	if (31 <= day && day < (59 + leap)) {
 | |
| 		return 1;
 | |
| 	}
 | |
| 	if ((59 + leap) <= day && day < (90 + leap)) {
 | |
| 		return 2;
 | |
| 	}
 | |
| 	if ((90 + leap) <= day && day < (120 + leap)) {
 | |
| 		return 3;
 | |
| 	}
 | |
| 	if ((120 + leap) <= day && day < (151 + leap)) {
 | |
| 		return 4;
 | |
| 	}
 | |
| 	if ((151 + leap) <= day && day < (181 + leap)) {
 | |
| 		return 5;
 | |
| 	}
 | |
| 	if ((181 + leap) <= day && day < (212 + leap)) {
 | |
| 		return 6;
 | |
| 	}
 | |
| 	if ((212 + leap) <= day && day < (243 + leap)) {
 | |
| 		return 7;
 | |
| 	}
 | |
| 	if ((243 + leap) <= day && day < (273 + leap)) {
 | |
| 		return 8;
 | |
| 	}
 | |
| 	if ((273 + leap) <= day && day < (304 + leap)) {
 | |
| 		return 9;
 | |
| 	}
 | |
| 	if ((304 + leap) <= day && day < (334 + leap)) {
 | |
| 		return 10;
 | |
| 	}
 | |
| 	if ((334 + leap) <= day && day < (365 + leap)) {
 | |
| 		return 11;
 | |
| 	}
 | |
| };
 |