在 Java 里,要实现**2025-12-09 减去带小数的天数,并向下取整**,可以这样做:
示例需求
假设:
- 起始时间:
2025-12-09 - 需要减去的天数:
2.7天 - 规则:先向下取整再减 →
2.7→2
方式一:使用 LocalDate(推荐)
java
import java.time.LocalDate;
public class Demo {
public static void main(String[] args) {
LocalDate date = LocalDate.parse("2025-12-09");
double days = 2.7;
// 向下取整
long floorDays = (long) Math.floor(days);
// 减去天数
LocalDate result = date.minusDays(floorDays);
System.out.println("结果日期:" + result);
}
}
输出:
结果日期:2025-12-07
方式二:使用 LocalDateTime(精确到时间)
如果你有时间部分,比如实际减去"整数天":
java
import java.time.LocalDateTime;
public class Demo {
public static void main(String[] args) {
LocalDateTime dateTime = LocalDateTime.parse("2025-12-09T10:30:00");
double days = 3.9;
long floorDays = (long) Math.floor(days);
LocalDateTime result = dateTime.minusDays(floorDays);
System.out.println("结果时间:" + result);
}
}
关键点说明
| 需求 | 实现方式 |
|---|---|
| 向下取整 | Math.floor(double) |
| 转整型 | (long) 强制转换 |
| 日期减天数 | minusDays() |
如果你是想按"实际小数天"减(比如 2.7 天 = 2 天 + 16小时48分),也可以告诉我,我给你另一种写法。