「java日期时间计算代码」java 计算日期

博主:adminadmin 2023-01-13 16:54:07 357

本篇文章给大家谈谈java日期时间计算代码,以及java 计算日期对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

java 计算某日期 多少天后的日期

java计算某日期之后的日期,可以参考如下代码:

public static void main(String[] args) {

// 时间表示格式可以改变,yyyyMMdd需要写例如20160523这种形式的时间

SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd");

String str = "2016/05/23";

// 将字符串的日期转为Date类型,ParsePosition(0)表示从第一个字符开始解析

Date date = sdf.parse(str, new ParsePosition(0));

Calendar calendar = Calendar.getInstance();

calendar.setTime(date);

// add方法中的第二个参数n中,正数表示该日期后n天,负数表示该日期的前n天

calendar.add(Calendar.DATE, -10);

Date date1 = calendar.getTime();

String out = sdf.format(date1);

System.out.println(out);

}

java中如何计算出两个日期之间相差多少天

思路就是根据它们相差的毫秒数除以每天的毫秒数(60*60*24*1000),代码如下:

public static void main(String[] args) throws ParseException {

String date1="1987-01-01";

String date2="2010-01-01";

SimpleDateFormat sdf=new SimpleDateFormat("yyyy-mm-dd");

Date d1=sdf.parse(date1);

Date d2=sdf.parse(date2);

long daysBetween=(d2.getTime()-d1.getTime()+1000000)/(60*60*24*1000);

System.out.println("1987-01-01 与 2010-01-01 相隔 "+daysBetween+" 天");

}

运行结果如下:

扩展资料:

Java使用以下三种方法来比较两个日期:

1、使用 getTime() 方法获取两个日期(自1970年1月1日经历的毫秒数值),然后比较这两个值。

2、使用方法 before(),after() 和 equals()。例如,一个月的12号比18号早,则 new Date(99, 2, 12).before(new Date (99, 2, 18)) 返回true。

3、使用 compareTo() 方法,它是由 Comparable 接口定义的,Date 类实现了这个接口。

SimpleDateFormat 是一个以语言环境敏感的方式来格式化和分析日期的类。SimpleDateFormat 允许你选择任何用户自定义日期时间格式来运行

例如:

SimpleDateFormat ft = new SimpleDateFormat ("yyyy-MM-dd hh:mm:ss");

这一行代码确立了转换的格式,其中 yyyy 是完整的公元年,MM 是月份,dd 是日期,HH:mm:ss 是时、分、秒。

注意:有的格式大写,有的格式小写,例如 MM 是月份,mm 是分;HH 是 24 小时制,而 hh 是 12 小时制。

以上实例编译运行结果如下:

当前时间为: 2018-09-14 10:16:34

参考资料:

Java官方API接口-Date

菜鸟教程-Java 日期时间

用Java编制一个日期计算程序

import java.util.Calendar; import java.util.Date; import java.util.Scanner; /** * */ /** * @author think * */ public class Test1 { /** * */ public Test1() { // TODO Auto-generated constructor stub } /** * function: * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub new Test1().print(); } /** * function: 打印函数 包含对当前输入的月历的打印 以及输入和输出的打印 */ public void print(){ //当月天数 //输入你的查询年月 如果直接输入月 默认是当前年 Scanner scanner = new Scanner(System.in); System.out.println("1.please input the month:"); int month = scanner.nextInt(); while(month = 0 || month 12) { System.out.println("1.please input the month:"); month = scanner.nextInt(); } int days = days(month); String[] weeks = {"sun","mon","tue","wed","thr","Frd","sat"}; for (int i = 0; i weeks.length; i++) { System.out.print(weeks[i]); for (int j = 0; j 2; j++) { System.out.print(" "); } } System.out.println(); int weekOfday = getWeekOfday(month,1); //获得第一天的星期 for (int i = 0; i (weekOfday - 1) * 5; i++) { System.out.print(" "); } for (int i = 1; i = days; i++,weekOfday +=1) { if(weekOfday == 8) { weekOfday = 1; System.out.println(); System.out.print(i); } else { System.out.print(i); } for (int j = 0; j 5 - (String.valueOf(i).length()); j++) { System.out.print(" "); } } System.out.println("\n"); System.out.println("2.please input the date(format is like:20030204):"); String date = scanner.next(); while(date.length() 8) { System.out.println("2.please input the date(format is like:20030204):"); date = scanner.next(); } System.out.println("your input date weekday is:" + (getWeekDayStr(getWeekOfday(date)))); System.out.println("\n"); System.out.println("3.please input the compute date1(format is like:20030204):"); String date1 = scanner.next(); while(date.length() 8) { System.out.println("3.please input the compute date1(format is like:20030204):"); date1 = scanner.next(); } System.out.println("3.please input the compute date2(format is like:20030204):"); String date2 = scanner.next(); while(date.length() 8) { System.out.println("3.please input the compute date2(format is like:20030204):"); date2 = scanner.next(); } int xiangchadays = daysxiangcha(date1, date2); System.out.println("xiangcha days is:" + xiangchadays); } /** * function: 通过准确的年月日查询星期几的整数表示 * @param year * @param month * @param day * @return */ public int getWeekOfday(int year,int month, int day) { Calendar c = Calendar.getInstance(); c.set(Calendar.YEAR, year); c.set(Calendar.MONTH, month - 1); c.set(Calendar.DAY_OF_MONTH, day); return c.get(Calendar.DAY_OF_WEEK); } /** * function: 通过输入月日 查询星期几的整数表示 默认是当前年 * @param month * @param day * @return */ public int getWeekOfday(int month, int day) { Calendar c = Calendar.getInstance(); c.setTime(new Date()); int year = c.get(Calendar.YEAR); return getWeekOfday(year, month, day); } /** * function: 通过日期字符串获得星期几的整数表示 * @param dateStr * @return */ public int getWeekOfday(String dateStr) { int year =Integer.parseInt(dateStr.substring(0, 4)) ; int month =Integer.parseInt(dateStr.substring(4, 6)) ; int day =Integer.parseInt(dateStr.substring(6, 8)) ; return getWeekOfday(year, month, day); } /** * function: 返回星期几这样的表示 * @param weekday * @return */ public String getWeekDayStr(int weekday) { return weekDayStrs[weekday - Calendar.SUNDAY]; } String[] weekDayStrs = {"星期日","星期一","星期二","星期三","星期四","星期五","星期六"}; /** * function: 两个日期的相差天数 * @param dateStr1 20100205这样的格式 * @param dateStr2 20100205这样的格式 * @return */ public int daysxiangcha(String dateStr1,String dateStr2) { int year1 =Integer.parseInt(dateStr1.substring(0, 4)) ; int month1 =Integer.parseInt(dateStr1.substring(4, 6)) ; int day1 =Integer.parseInt(dateStr1.substring(6, 8)) ; int year2 =Integer.parseInt(dateStr2.substring(0, 4)) ; int month2 =Integer.parseInt(dateStr2.substring(4, 6)) ; int day2 =Integer.parseInt(dateStr2.substring(6, 8)) ; Calendar c1 = Calendar.getInstance(); c1.set(Calendar.YEAR, year1); c1.set(Calendar.MONTH, month1 -1); c1.set(Calendar.DAY_OF_MONTH, day1); Calendar c2 = Calendar.getInstance(); c2.set(Calendar.YEAR, year2); c2.set(Calendar.MONTH, month2 - 1); c2.set(Calendar.DAY_OF_MONTH, day2); long mills = c1.getTimeInMillis() c2.getTimeInMillis()? c1.getTimeInMillis() - c2.getTimeInMillis(): c2.getTimeInMillis() - c1.getTimeInMillis(); return (int)(mills/1000/3600/24); } /** * @param year * @param month * @return 某年某月的天数 */ public static int days(int year,int month) { int days = 0; if(month!=2) { switch(month) { case 1: case 3: case 5: case 7: case 8: case 10: case 12:days = 31 ;break; case 4: case 6: case 9: case 11:days = 30; } } else { if(year%4==0 year%100!=0 || year%400==0) days = 29; else days = 28; } return days; } /** * function: 查询某月的天数 默认是当前年份 * @param month * @return */ public static int days(int month) { Calendar c = Calendar.getInstance(); c.setTime(new Date()); int year = c.get(Calendar.YEAR); return days(year, month); } }

java日期时间计算代码的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java 计算日期、java日期时间计算代码的信息别忘了在本站进行查找喔。