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.
 
 
 
 
 
 

48 lines
1.3 KiB

/*===
0
3723004
10923000
-3477000
3723004
3723004
-3723004
-3723004
===*/
/* MakeTime() is not exposed directly, but setUTCHours() will call MakeTime()
* with parameters given in the call. It will then combine the result with
* MakeDate(), keeping the day number same as before. By using Jan 1, 1970
* as the date, the day number will be 0, and the time value will thus be
* MakeTime() result.
*
* However: the arguments to MakeTime() will be ToNumber() coerced by
* setUTCHours(), and the result will go through TimeClip().
*/
function MakeTime(hour, min, sec, msec) {
var d = new Date(0);
d.setUTCHours(hour, min, sec, msec);
return d.getTime();
}
try {
// simple tests
print(MakeTime(0, 0, 0, 0));
print(MakeTime(1, 2, 3, 4));
// components don't need to be normalized, and will just be added up
// here: 1*3600e3 + 2*60e3 + 3e3 + 2*3600e3
print(MakeTime(1, 2, 3, 2*3600e3));
// components may also be negative
// here: 1*3600e3 + 2*60e3 + 3e3 - 2*3600e3
print(MakeTime(1, 2, 3, -2*3600e3));
// components are ToInteger() rounded, which rounds towards zero
print(MakeTime(1.1, 2.2, 3.3, 4.4));
print(MakeTime(1.9, 2.9, 3.9, 4.9));
print(MakeTime(-1.1, -2.1, -3.1, -4.1));
print(MakeTime(-1.9, -2.9, -3.9, -4.9));
} catch (e) {
print(e.name);
}