package test;
import java.util.Calendar;
public class Test {
static int year = 0;
static int month = 0;
static int day = 0;
public static void main(String[] args) {
Calendar start = Calendar.getInstance();
start.set(2015, 1, 5, 0, 0, 0);
Calendar end = Calendar.getInstance();
end.set(2039, 4, 3, 0, 0, 0);
start.add(Calendar.MONTH, 1);
Calendar nextMonth = Calendar.getInstance();
nextMonth.setTime(start.getTime());
start.add(Calendar.MONTH, -1);
start.add(Calendar.YEAR, 1);
Calendar nextYear = Calendar.getInstance();
nextYear.setTime(start.getTime());
start.add(Calendar.YEAR, -1);
Calendar today = Calendar.getInstance();
Calendar yestoday = Calendar.getInstance();
today.setTime(start.getTime());
while (true) {
boolean spanYear = false;
boolean spanMonth = false;
yestoday.setTime(today.getTime());
today.add(Calendar.DAY_OF_YEAR, 1);
spanYear = today.getTime().getTime() >= nextYear.getTime().getTime();
spanMonth = today.getTime().getTime() >= nextMonth.getTime().getTime();
if (spanYear) {
year++;
month = 0;
day = 0;
nextYear.add(Calendar.YEAR, 1);
nextMonth.add(Calendar.MONTH, 1);
} else if (spanMonth) {
month++;
day = 0;
nextMonth.add(Calendar.MONTH, 1);
} else {
day++;
}
if (today.get(Calendar.YEAR) == end.get(Calendar.YEAR)
&& today.get(Calendar.MONTH) == end.get(Calendar.MONTH)
&& today.get(Calendar.DAY_OF_MONTH) == end.get(Calendar.DAY_OF_MONTH))
break;
}
System.out.println((year < 1 ? "" : year + "年") + (month < 1 ? "" : month + "月") + (day < 1 ? "" : day + "天"));
}
}
工作中用到的小算法,计算两日期间隔xx年xx月xx天
最新推荐文章于 2023-12-27 23:14:05 发布