81,091
社区成员
发帖
与我相关
我的任务
分享
public static String countYearDate(Date beginDate , int days)
{
Calendar cal1 = Calendar.getInstance();
cal1.setTime(beginDate);
int year= cal1.get(Calendar.YEAR);
int month=cal1.get(Calendar.MONTH)+1;
int day= cal1.get(Calendar.DAY_OF_MONTH);
if ((month == 1) || (month ==3) || (month == 5) ||( month == 7) ||(month == 8)|| (month == 10) || (month == 12)) // �?31 �?
{
int allDay = day+days;
int d = allDay %31;
if (d == 0)
{
cal1.set(Calendar.DAY_OF_MONTH, 31);
}
else {
cal1.set(Calendar.DAY_OF_MONTH, d);
}
int m=allDay / 31;
if (m >1)
{
month += m;
cal1.set(Calendar.MONTH, month);
}
else if (m == 1 && d == 0)
{
cal1.set(Calendar.MONTH, month);
}
else if (m ==1 && d <=31)
{
cal1.set(Calendar.MONTH, month+1);
}
else
{
cal1.set(Calendar.MONTH, month);
}
if (month >=11)
{
year +=1;
}
cal1.set(Calendar.YEAR,year);
}
else if (month == 2 ) // 2 月是平年还是闰年
{
boolean leapYear= CalendarConvert.isLeapYear(year); // 判断年份是平年还是闰年
if (leapYear)
{
int allDay= day+days;
day = allDay %29;
if (day == 0)
{
cal1.set(Calendar.DAY_OF_MONTH, 29);
}
else {
cal1.set(Calendar.DAY_OF_MONTH, day);
}
int m=allDay / 29;
if (m >1)
{
month += m;
cal1.set(Calendar.MONTH, month);
}
else if (m == 1 && day == 0)
{
cal1.set(Calendar.MONTH, month);
}
else if (m ==1 && day <=29)
{
cal1.set(Calendar.MONTH, month+1);
}
else
{
cal1.set(Calendar.MONTH, month);
}
if (month >=11)
{
year +=1;
}
cal1.set(Calendar.YEAR,year);
}
else
{
int allDay= day+days;
day = allDay %28;
if (day == 0)
{
cal1.set(Calendar.DAY_OF_MONTH, 28);
}
else {
cal1.set(Calendar.DAY_OF_MONTH, day);
}
int m=allDay / 28;
if (m >1)
{
month += m;
cal1.set(Calendar.MONTH, month);
}
else if (m == 1 && day == 0)
{
cal1.set(Calendar.MONTH, month);
}
else if (m ==1 && day <=28)
{
cal1.set(Calendar.MONTH, month+1);
}
else
{
cal1.set(Calendar.MONTH, month);
}
if (month >=11)
{
year +=1;
}
cal1.set(Calendar.YEAR,year);
}
}
else // 30 天
{
int allDay= day+days;
day = allDay %30;
cal1.set(Calendar.DAY_OF_MONTH, day);
int m=allDay / 30;
if (m > 1)
{
month += (m-1);
}
cal1.set(Calendar.MONTH, month);
if (month >=11)
{
year +=1;
}
cal1.set(Calendar.YEAR, year);
}
Calendar cal2 = Calendar.getInstance();
cal2.setTime(cal1.getTime());
Integer lastYear = cal2.get(Calendar.YEAR);
Integer lastMonth = cal2.get(Calendar.MONTH);
Integer lastDay = cal2.get(Calendar.DAY_OF_MONTH);
String timeDate=lastYear.toString() +"-" + lastMonth.toString() +"-"+lastDay;
System.out.println(lastYear +"年" + lastMonth+"月" + lastDay + "日");
// System.out.println(timeDate);
return timeDate;
}
public static void main(String[] args) {
countYearDate(new Date(), 29);
}
import java.util.Calendar;
import java.util.Date;
public class TestDate {
public static String countYearDate(Date beginDate, int days) {
Calendar cal1 = Calendar.getInstance();
cal1.setTime(beginDate);
int year = cal1.get(Calendar.YEAR);
int month = cal1.get(Calendar.MONTH) + 1;
int day = cal1.get(Calendar.DAY_OF_MONTH);
if ((month == 1) || (month == 3) || (month == 5) || (month == 7)
|| (month == 8) || (month == 10) || (month == 12)) //
{
int allDay = day + days;
int d = allDay % 31;
if (d == 0) {
cal1.set(Calendar.DAY_OF_MONTH, 31);
} else {
cal1.set(Calendar.DAY_OF_MONTH, d);
}
int m = allDay / 31;
if (m > 1) {
month += m;
cal1.set(Calendar.MONTH, month);
} else if (m == 1 && d == 0) {
cal1.set(Calendar.MONTH, month);
} else if (m == 1 && d <= 31) {
cal1.set(Calendar.MONTH, month + 1);
} else {
cal1.set(Calendar.MONTH, month);
}
if (month >= 11) {
year += 1;
}
cal1.set(Calendar.YEAR, year);
} else if (month == 2) // 2 月是平年还是闰年
{
boolean leapYear = CalendarConvert.isLeapYear(year); // 判断年份是平年还是闰年
if (leapYear) {
int allDay = day + days;
day = allDay % 29;
if (day == 0) {
cal1.set(Calendar.DAY_OF_MONTH, 29);
} else {
cal1.set(Calendar.DAY_OF_MONTH, day);
}
int m = allDay / 29;
if (m > 1) {
month += m;
cal1.set(Calendar.MONTH, month);
} else if (m == 1 && day == 0) {
cal1.set(Calendar.MONTH, month);
} else if (m == 1 && day <= 29) {
cal1.set(Calendar.MONTH, month + 1);
} else {
cal1.set(Calendar.MONTH, month);
}
if (month >= 11) {
year += 1;
}
cal1.set(Calendar.YEAR, year);
} else {
int allDay = day + days;
day = allDay % 28;
if (day == 0) {
cal1.set(Calendar.DAY_OF_MONTH, 28);
} else {
cal1.set(Calendar.DAY_OF_MONTH, day);
}
int m = allDay / 28;
if (m > 1) {
month += m;
cal1.set(Calendar.MONTH, month);
} else if (m == 1 && day == 0) {
cal1.set(Calendar.MONTH, month);
} else if (m == 1 && day <= 28) {
cal1.set(Calendar.MONTH, month + 1);
} else {
cal1.set(Calendar.MONTH, month);
}
if (month >= 11) {
year += 1;
}
cal1.set(Calendar.YEAR, year);
}
} else // 30 天
{
int allDay = day + days;
day = allDay % 30;
cal1.set(Calendar.DAY_OF_MONTH, day);
int m = allDay / 30;
if (m >= 1) {//m大于等于1,就说明月份超过了1月,month加m
month += m;
}
cal1.set(Calendar.MONTH, month-1);//在这里设置month-1
if (month > 12) {//当月份大于12时表示超过了一年,year+1
year += 1;
}
cal1.set(Calendar.YEAR, year);
}
Calendar cal2 = Calendar.getInstance();
cal2.setTime(cal1.getTime());
Integer lastYear = cal2.get(Calendar.YEAR);
Integer lastMonth = cal2.get(Calendar.MONTH) + 1;//取月份要加1
Integer lastDay = cal2.get(Calendar.DAY_OF_MONTH);
String timeDate = lastYear.toString() + "-" + lastMonth.toString()
+ "-" + lastDay;
System.out.println(lastYear + "年" + lastMonth + "月" + lastDay + "日");
// System.out.println(timeDate);
return timeDate;
}
public static void main(String[] args) {
countYearDate(new Date(), 29);
}
}
class CalendarConvert {
public static boolean isLeapYear(int year) {
boolean flag = false;
flag = (year % 4 == 0 && year % 100 != 0) || (year % 400 == 0);
return flag;
}
}
public static void countYearDate(Date beginDate, int days)
{
Calendar cal1 = Calendar.getInstance();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日");
for (int i = 1; i <= days; i++)
{
cal1.setTime(beginDate);
cal1.add(Calendar.DAY_OF_MONTH, i);
System.out.println(sdf.format(cal1.getTime()));
}
}
public static void main(String[] args)
{
countYearDate(new Date(), 29);
}