输出中的年份如何根据月份的总和加起来?
int sewa = 10
Calendar now = Calendar.getInstance();
int year = now.get(Calendar.YEAR);
String cyear = Integer.toString(year);
int mont = (now.get(Calendar.MONTH) + 1);
String cmont = Integer.toString(mont);
int day = (now.get(Calendar.DATE) );
String cday = Integer.toString(day);
String date = cyear +"/"+cmont+"/"+cday;
Calendar ex = Calendar.getInstance();
int exyear = ex.get(Calendar.YEAR);
String excyear = Integer.toString(exyear);
ex.add(Calendar.MONTH,+sewa);
int exmont = (ex.get(Calendar.MONTH) + 1);
String excmont = Integer.toString(exmont);
int exday = (ex.get(Calendar.DATE) );
String excday = Integer.toString(exday);
String exdate = excyear +"/"+excmont+"/"+excday;
System.out.println(date);
System.out.println("+++++");
System.out.println(exdate);
现在:2018/3/25 +++++之后:2018/1/25 如何输出:2019/1/25
答案 0 :(得分:1)
如果您使用的是Java 8或更高版本,请使用LocalDate
代替Calendar
课程。使用方法plusDays()
,plusMonths()
和plusYears()
添加天,月和年非常容易。就这么简单:
LocalDate today = LocalDate.now();
today.plusDays(20);
today.plusMonths(1);
today.plusYears(5);
LocalDate
和LocalDateTime
与JSR-310一起使用,更简单,直接且易于使用,替代Date
和Calendar
。
但是,如果您使用旧版本的java,或者出于其他原因需要使用Date
和Calendar
,则可以使用与使用月份相同的方式增加年数,使用
ex.add(Calendar.YEAR, 5);
答案 1 :(得分:0)
您将年份捕获到变量......
int exyear = ex.get(Calendar.YEAR);
String excyear = Integer.toString(exyear);
...在您向日历添加10个月之前......
ex.add(Calendar.MONTH,+sewa);
...导致excyear
仍未更新。
要解决此问题,请为语句指定正确的顺序(获取日历 - >添加月份 - >获取字符串 - >打印)。或者更好地使用SimpleDateFormat:
Calendar ex = Calendar.getInstance();
ex.add(Calendar.MONTH, sewa);
SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd");
String exdate = sdf.format(ex.getTime());
System.out.println(exdate);
打印出来:
2019年1月25日