src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/objects/NativeDate.java

Print this page




1028             sb.append(':');
1029             zeroPad(sb, minFromTime(t), 2);
1030             sb.append(':');
1031             zeroPad(sb, secFromTime(t), 2);
1032             sb.append('.');
1033             zeroPad(sb, msFromTime(t), 3);
1034             sb.append("Z");
1035             return sb.toString();
1036         }
1037 
1038         throw rangeError("invalid.date");
1039     }
1040 
1041     // ECMA 15.9.1.2 Day (t)
1042     private static double day(final double t) {
1043         return Math.floor(t / msPerDay);
1044     }
1045 
1046     // ECMA 15.9.1.2 TimeWithinDay (t)
1047     private static double timeWithinDay(final double t) {
1048         return t % msPerDay;

1049     }
1050 
1051     // ECMA 15.9.1.3 InLeapYear (t)
1052     private static boolean isLeapYear(final int y) {
1053         return y % 4 == 0 && (y % 100 != 0 || y % 400 == 0);
1054     }
1055 
1056     // ECMA 15.9.1.3 DaysInYear (y)
1057     private static int daysInYear(final int y) {
1058         return isLeapYear(y) ? 366 : 365;
1059     }
1060 
1061     // ECMA 15.9.1.3 DayFromYear (y)
1062     private static double dayFromYear(final double y) {
1063         return 365 * (y - 1970)
1064                 + Math.floor((y -1969) / 4.0)
1065                 - Math.floor((y - 1901) / 100.0)
1066                 + Math.floor((y - 1601) / 400.0);
1067     }
1068 




1028             sb.append(':');
1029             zeroPad(sb, minFromTime(t), 2);
1030             sb.append(':');
1031             zeroPad(sb, secFromTime(t), 2);
1032             sb.append('.');
1033             zeroPad(sb, msFromTime(t), 3);
1034             sb.append("Z");
1035             return sb.toString();
1036         }
1037 
1038         throw rangeError("invalid.date");
1039     }
1040 
1041     // ECMA 15.9.1.2 Day (t)
1042     private static double day(final double t) {
1043         return Math.floor(t / msPerDay);
1044     }
1045 
1046     // ECMA 15.9.1.2 TimeWithinDay (t)
1047     private static double timeWithinDay(final double t) {
1048         double val = t % msPerDay;
1049         return val < 0? val + msPerDay : val;
1050     }
1051 
1052     // ECMA 15.9.1.3 InLeapYear (t)
1053     private static boolean isLeapYear(final int y) {
1054         return y % 4 == 0 && (y % 100 != 0 || y % 400 == 0);
1055     }
1056 
1057     // ECMA 15.9.1.3 DaysInYear (y)
1058     private static int daysInYear(final int y) {
1059         return isLeapYear(y) ? 366 : 365;
1060     }
1061 
1062     // ECMA 15.9.1.3 DayFromYear (y)
1063     private static double dayFromYear(final double y) {
1064         return 365 * (y - 1970)
1065                 + Math.floor((y -1969) / 4.0)
1066                 - Math.floor((y - 1901) / 100.0)
1067                 + Math.floor((y - 1601) / 400.0);
1068     }
1069