gettimeinmillis()用法
时间: 2023-04-22 22:07:10 浏览: 84
gettimeinmillis()是一个Java函数,用于获取当前系统时间的毫秒数。它返回一个long类型的值,表示当前时间距离1970年1月1日00:00:00 GMT的毫秒数。可以用它来计算时间间隔或者记录时间戳。
相关问题
输入生日的月和日,程序输出从现在到生日的天数。如果生日已过,输出生日已过的天数。 提示:Calendar对象的setter()方法和getTimeInMillis()方法应该能用到。
要编写一个Java程序来计算从当前日期到给定生日的天数,你可以使用`java.util.Calendar`类。以下是一个简单的示例:
```java
import java.util.Calendar;
import java.util.Date;
public class BirthdayCalculator {
public static void main(String[] args) {
// 获取当前日期
Calendar currentDate = Calendar.getInstance();
// 用户输入生日(例如:06表示六月,15表示15号)
int month = 6; // 月份(1-12)
int day = 15; // 日子
// 设置生日日期
Calendar birthdayDate = Calendar.getInstance();
birthdayDate.set(Calendar.MONTH, month - 1); // 减一,因为月份是从0开始计数的
birthdayDate.set(Calendar.DAY_OF_MONTH, day);
// 如果生日已过
if (currentDate.after(birthdayDate)) {
long diffInMilliseconds = birthdayDate.getTimeInMillis() - currentDate.getTimeInMillis(); // 计算两个时间差
int daysSinceBirthday = (int) Math.abs(diffInMilliseconds / (1000 * 60 * 60 * 24)); // 转换为天数并取绝对值(因为我们只关心正数)
System.out.println("生日已经过去 " + daysSinceBirthday + " 天");
} else {
long timeUntilBirthday = birthdayDate.getTimeInMillis() - currentDate.getTimeInMillis(); // 未来的天数
int daysUntilBirthday = (int) Math.round(timeUntilBirthday / (1000 * 60 * 60 * 24)); // 圆整得到整数天数
System.out.println("距离生日还有 " + daysUntilBirthday + " 天");
}
}
}
```
在这个程序中,我们首先获取当前日期,然后让用户输入他们的生日。接着,我们创建两个`Calendar`实例分别代表当前日期和生日。我们检查当前日期是否大于生日日期,如果是,我们就计算出生日已过去的天数;如果不是,则计算未来到生日的天数。
System.currentTimeMillis() 和 calendar.getTimeInMillis() 是一样的么
不完全相同。`System.currentTimeMillis()` 返回当前时间的毫秒数,以自协调世界时(UTC)1970年1月1日午夜开始的时间为基准。它是一个静态方法,直接返回当前时间。
`calendar.getTimeInMillis()` 是 `Calendar` 类的一个方法,它返回给定 `Calendar` 对象的时间值,以自协调世界时(UTC)1970年1月1日午夜开始的时间为基准。它需要你先创建一个 `Calendar` 对象,并设置其时间值,然后才能调用该方法。
总的来说,它们都可以用来获取当前时间的毫秒数,但是使用方式和实现细节有所不同。
阅读全文