您好,代码如下:
创新互联作为成都网站建设公司,专注重庆网站建设公司、网站设计,有关成都定制网页设计方案、改版、费用等问题,行业涉及石牌坊等多个领域,已为上千家企业服务,得到了客户的尊重与认可。
* 获得指定日期的后一天
* @param specifiedDay
* @return
*/
public static String getSpecifiedDayAfter(String specifiedDay){
Calendar c = Calendar.getInstance();
Date date=null;
try {
date = new SimpleDateFormat("yy-MM-dd").parse(specifiedDay);
} catch (ParseException e) {
e.printStackTrace();
}
c.setTime(date);
int day=c.get(Calendar.DATE);
c.set(Calendar.DATE,day+1);
String dayAfter=new SimpleDateFormat("yyyy-MM-dd").format(c.getTime());
return dayAfter;
}
... 看错了。 给你说说思路吧, 先判断年,再判断月就可以了啊
国外一周的开始是从星期日,结束是星期六;而国内一周开始为星期一,结束为星期日,所以分别按两个方式处理:
1,国外日期格式
代码为:
Calendar calendar = new GregorianCalendar(); //获取当前日期
System.out.println(calendar.getTime()); //打印当前日期
calendar.add(Calendar.DAY_OF_WEEK,7-calendar.get(Calendar.DAY_OF_WEEK)+1);
System.out.println(calendar.getTime()); //打印下周日的日期
calendar.add(Calendar.DAY_OF_WEEK, 6);
System.out.println(calendar.getTime()); //打印下周六的日期
代码解释:
Calendar 自身带了很多对日期处理的方法,add方法是将当前日期按照年、月、日向后增加时间。“calendar.get(Calendar.DAY_OF_WEEK)”意思是今天是本周的第几天。“7-calendar.get(Calendar.DAY_OF_WEEK)"意思为本周还剩多少天,再加1表示距离下周星期日还有多少天。calendar.add(Calendar.DAY_OF_WEEK,7-calendar.get(Calendar.DAY_OF_WEEK)+1)意思是在今天的日期上向后推进到下周日,Calendar 会自动进行运算。此时Calendar保存的是下周日的日期,计算出下周六的日期只需再加6即可。
2,国内日期格式
代码为:
Calendar calendar = new GregorianCalendar(); //获取当前日期
System.out.println(calendar.getTime()); //打印当前日期
calendar.add(Calendar.DAY_OF_WEEK,7-calendar.get(Calendar.DAY_OF_WEEK)+2);
System.out.println(calendar.getTime()); //打印下周一的日期
calendar.add(Calendar.DAY_OF_WEEK, 6);
System.out.println(calendar.getTime()); //打印下周日的日期
执行结果:
Mon Feb 25 16:25:01 CST 2013 //当前日期:2月25号 星期1
Mon Mar 04 16:25:01 CST 2013 //下周一日期:3月4号 星期1
Sun Mar 10 16:25:01 CST 2013 //下周日日期:3月10号 星期天
采用日历类Calendar
Calendar calendar = Calendar.getInstance();
//第二个参数的意思表示与当前时间的比较,数字表示天数,1表示下一天 -1表示前一天。
calendar.add(Calendar.DAY_OF_MONTH,1);
//这样就可以获取到下一天,然后你自己去格式化吧
calendar.getTime();
import java.util.Calendar;
import java.util.Scanner;
import java.util.concurrent.TimeUnit;
/**
* Title: Test03.javabr
* Description:
*
* @author 王凯芳
* @date 2020年3月5日 下午6:03:04
* @version 1.0
*
* @request 编写一个方法能计算任何一个人今天离他最近下一次生日还有多少天,然后在主方法(main方法)中输入你的出生年月日,调用该方法的计算结果并输出信息“某某同学离自己最近下一次生日x天”。
*/
public class Test03 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入你的姓名:");
String name = sc.nextLine();
System.out.println("请输入你的生日,格式为(2000/01/01):");
String line = sc.nextLine();
String[] strs = line.split("/");
if (strs.length == 3) {
int days = getDays(strs[0], strs[1], strs[2]);
if (days == 0) {
System.out.println(String.format("%s 同学,今天是你的生日,祝你生日快乐(#^.^#)", name, days));
} else {
System.out.println(String.format("%s 同学离自己最近下一次生日%d天。", name, days));
}
} else {
System.out.println("生日输入不正确!请按格式输入。");
}
sc.close();
}
/**
* 获取最近一次生日天数
*
* @param year
* @param month
* @param day
* @return
*/
public static int getDays(String year, String month, String day) {
Calendar now = Calendar.getInstance();
now.set(Calendar.HOUR_OF_DAY, 0);
now.set(Calendar.MINUTE, 0);
now.set(Calendar.SECOND, 0);
now.set(Calendar.MILLISECOND, 0);
int now_year = now.get(Calendar.YEAR);
Calendar birthday = Calendar.getInstance();
birthday.set(Calendar.YEAR, now_year);
birthday.set(Calendar.MONTH, Integer.parseInt(month) - 1);
birthday.set(Calendar.DAY_OF_MONTH, Integer.parseInt(day));
birthday.set(Calendar.HOUR_OF_DAY, 0);
birthday.set(Calendar.MINUTE, 0);
birthday.set(Calendar.SECOND, 0);
birthday.set(Calendar.MILLISECOND, 0);
long diff = now.getTimeInMillis() - birthday.getTimeInMillis();
if (diff == 0) {
return 0;
} else if (diff 0) {
long diffDays = TimeUnit.DAYS.convert(diff, TimeUnit.MILLISECONDS);
return Math.abs((int) diffDays);
} else {
birthday.add(Calendar.YEAR, 1);
long diffMi = birthday.getTimeInMillis() - now.getTimeInMillis();
long diffDays = TimeUnit.DAYS.convert(diffMi, TimeUnit.MILLISECONDS);
return (int) diffDays;
}
}
}