作业帮 > 综合 > 作业

Java 如何根据现在的时间毫秒来计算时间的公式(不想用原有的类)

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/07/17 13:07:42
Java 如何根据现在的时间毫秒来计算时间的公式(不想用原有的类)
java.sql.Timestamp time ;
long tt = -1 ;
time = new java.sql.Timestamp(new java.util.Date().getTime());
tt = time.getTime()
来获得信息.
我希望可以根据一些数学公司来确定现在的年、月、日、时、分、秒、毫秒的信息.
不要用现有的类
特意写了一个  你看看是不是这个意思public static void main(String[] args) {
        int timezone = 8;
        long timeMillis = new Date().getTime();//1970
        long totalSeconds = timeMillis / 1000;
        totalSeconds += 60 * 60 * timezone;
        int second = (int) (totalSeconds % 60);// 秒
        long totalMinutes = totalSeconds / 60;
        int minute = (int) (totalMinutes % 60);// 分
        long totalHours = totalMinutes / 60;
        int hour = (int) (totalHours % 24);// 时
        int totalDays = (int) (totalHours / 24);

        int _year = 1970;

        int year = _year + totalDays / 366;
        int month = 1;
        int day = 1;

        int diffDays;
        boolean leapYear;
        while (true) {
            int diff = (year - _year) * 365;
            diff += (year - 1) / 4 - (_year - 1) / 4;
            diff -= ((year - 1) / 100 - (_year - 1) / 100);
            diff += (year - 1) / 400 - (_year - 1) / 400;

            diffDays = totalDays - diff;

            leapYear = (year % 4 == 0) && (year % 100 != 0) || (year % 400 == 0);
            if (!leapYear && diffDays < 365 || leapYear && diffDays < 366) {
                break;
            } else {
                year++;
            }
        }

        int[] monthDays;
        if (diffDays >= 59 && leapYear) {
            monthDays = new int[] { -1, 0, 31, 60, 91, 121, 152, 182, 213, 244, 274, 305, 335 };
        } else {
            monthDays = new int[] { -1, 0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334 };
        }
        for (int i = monthDays.length - 1; i >= 1; i--) {
            if (diffDays >= monthDays[i]) {
                month = i;
                day = diffDays - monthDays[i] + 1;
                break;
            }
        }
        System.out.println(year);
        System.out.println(month);
        System.out.println(day);
        System.out.println(hour);
        System.out.println(minute);
        System.out.println(second);
    }