8062024: Issue with date.setFullYear when time other than midnight

Reviewed-by: jlaskey, lagergren
This commit is contained in:
Athijegannathan Sundararajan 2014-10-27 17:54:00 +05:30
parent 3dadb9d8e3
commit b7956c76bc
3 changed files with 45 additions and 1 deletions

View File

@ -1045,7 +1045,8 @@ public final class NativeDate extends ScriptObject {
// ECMA 15.9.1.2 TimeWithinDay (t)
private static double timeWithinDay(final double t) {
return t % msPerDay;
final double val = t % msPerDay;
return val < 0? val + msPerDay : val;
}
// ECMA 15.9.1.3 InLeapYear (t)

View File

@ -0,0 +1,39 @@
/*
* Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* version 2 for more details (a copy is included in the LICENSE file that
* accompanied this code).
*
* You should have received a copy of the GNU General Public License version
* 2 along with this work; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
*
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
*/
/**
* JDK-8062024: Issue with date.setFullYear when time other than midnight
*
* @test
* @run
*/
var date1 = new Date("January 01, 1950 00:00:00");
print("Before:", date1);
date1.setFullYear(1960);
print("After:", date1);
var date2 = new Date("January 01, 1950 00:00:01");
print("Before:", date2);
date2.setFullYear(1960);
print("After:", date2);

View File

@ -0,0 +1,4 @@
Before: Sun Jan 01 1950 00:00:00 GMT+0530 (IST)
After: Fri Jan 01 1960 00:00:00 GMT+0530 (IST)
Before: Sun Jan 01 1950 00:00:01 GMT+0530 (IST)
After: Fri Jan 01 1960 00:00:01 GMT+0530 (IST)