`
daichangfu
  • 浏览: 265439 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Java计算X天后和X月后日期的方法

    博客分类:
  • java
阅读更多
import java.text.SimpleDateFormat;
import java.util.Date;

public class OfterDate {

	/**
	 * 计算X天后的日期(天数不要大于28)
	 * 
	 * @param x
	 * @return
	 */
	public static String ofterDayDate(int x) {
		Date date = new Date();
		int year = Integer.parseInt(new SimpleDateFormat("yyyy").format(date));
		int month = Integer.parseInt(new SimpleDateFormat("MM").format(date));
		int day = Integer.parseInt(new SimpleDateFormat("dd").format(date)) + x;

		if (day > 30 && (month == 4 || month == 6 || month == 9 || month == 11)) {
			day = day - 30;
			if (month == 12) {
				month = 1;
				year = year + 1;
			} else {
				month = month + 1;
			}
		} else if (day > 31
				&& (month == 1 || month == 3 || month == 5 || month == 7
						|| month == 8 || month == 10 || month == 12)) {
			day = day - 31;
			if (month == 12) {
				month = 1;
				year = year + 1;
			} else {
				month = month + 1;
			}
		} else if (month == 2) {
			if (year % 400 == 0 || (year % 4 == 0 && year % 100 != 0)) {
				if (day > 29) {
					day = day - 29;
					month = 3;
				}
			} else {
				if (day > 28) {
					day = day - 28;
					month = 3;
				}
			}
		}

		String y = year + "-";
		String m = "";
		String d = "";
		if (month < 10)
			m = "0" + month + "-";
		else
			m = month + "-";
		if (day < 10)
			d = "0" + day;
		else
			d = day + "";
		return y + m + d;
	}

	/**
	 * 计算x月后的日期
	 * 
	 * @param x
	 * @return
	 */
	public static String ofterMonthDate(int x) {
		Date date = new Date();
		int year = Integer.parseInt(new SimpleDateFormat("yyyy").format(date));
		int month = Integer.parseInt(new SimpleDateFormat("MM").format(date))
				+ x;
		int day = Integer.parseInt(new SimpleDateFormat("dd").format(date));
		if (month > 12) {
			year += month/12;
			month = month%12;
		}
		if (day > 28) {
			if (month == 2) {
				if (year % 400 == 0 || (year % 4 == 0 && year % 100 != 0)) {
					day = 29;
				} else
					day = 28;
			} else if ((month == 4 || month == 6 || month == 9 || month == 11)
					&& day == 31) {
				day = 30;
			}
		}
		String y = year + "-";
		String m = "";
		String d = "";
		if (month < 10)
			m = "0" + month + "-";
		else
			m = month + "-";
		if (day < 10)
			d = "0" + day;
		else
			d = day + "";
		return y + m + d;
	}
}


有错误欢迎留言纠正!!
分享到:
评论
3 楼 lovehzh 2011-10-18  
很不错,谢谢
2 楼 bbdd21 2011-10-18  
给你个简单的实现 看看是否是你想要的
/**
	 * 得到计算的日期
	 * @param date 要计算的日期
	 * @param field 计算的周期格式<br> Calendar.YEAR Calendar.MONTH Calendar.DAY_OF_WEEK
	 * @param amount 计算的周期数
	 * @param formart 返回的日期格式
	 * @return
	 */
	public static String getAmountDate(Date date, int field , int amount){
		SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
		Calendar calendar = Calendar.getInstance();   
		calendar.setTime(date);
		calendar.add(field, amount);
		return df.format(calendar.getTime());
	}
1 楼 hq123xiao 2011-10-11  
89行插入代码
else {
                day = 31 ;
            }

相关推荐

    Java 计算两个日期之间相差的月数

    在Java编程语言中,计算两个日期之间相差的月数是一个常见的任务,这通常涉及到日期处理和时间计算。本文将深入探讨如何使用Java实现这个功能,包括标准库中的API以及一些高级方法。 首先,Java 8引入了`java.time`...

    java 公式计算汇总,直接调用其方法即可进行运算

    标题“java 公式计算汇总,直接调用其方法即可进行运算”所描述的,就是这样一个方便的工具集合,它包含了加减乘除基本运算以及正弦、余弦等科学计算功能。 1. **基础数学运算**: - 加法:在Java中,可以使用`+`...

    Java 工作日计算

    java日期计算简单实用方法如下: SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); WorkdayUtils workdayUtils = new WorkdayUtils(); workdayUtils.setLegalWorkdayList(legalWorkdayList); ...

    java中计算某个月的工作日总共几天

    在Java中,要计算一个月内有多少个工作日(通常指周一至周五),以及具体哪些日子是工作日,可以通过多种方法实现。这里将介绍一种较为通用的方法:利用`java.util.Calendar`类来计算指定月份内的工作日。 #### 一...

    android java日期计算工具

    android java日期计算工具

    日期处理技术 java

    1.对于任意三个整数,判断其否为一个合法的日期值. 2.给定一个日期值,计算若干天后的日期值. 3.如果有两个日期值,计算它们相距的天数.

    曲线拟合计算(java实现)

    Java作为一种通用的编程语言,提供了丰富的库和工具来实现曲线拟合。在这个项目中,作者使用Java实现了曲线和直线的拟合功能。 在Java中,曲线拟合通常涉及到数值分析和线性代数的知识。首先,我们需要理解数据点的...

    java计算全年周日 及过滤法定节假日

    java代码先获取全年的周末周日,定义全年的法定节假日,然后根据输入的日期计算,当前日期后的工作日,也可以用于计算工作日

    java swing 时间日期选择控件

    Java Swing 是Java GUI(图形用户界面)库的...总的来说,Java Swing 的日期时间选择控件简化了日期和时间输入,提高了数据准确性,并且提供了丰富的定制选项,使得开发者能够根据应用需求构建各种复杂的日期选择功能。

    Java节假日算法(免费)

    此外,我们还可以看到这个算法的实现过程中使用了多种 Java 技术,例如使用 Calendar 和 Date 类来处理日期和时间,使用 List 和 Vacation 类来存储和处理假期数据,使用循环和条件语句来实现算法的逻辑。...

    java工作日计算(去除法定假日)

    在Java编程中,计算工作日是一项常见的需求,特别是在金融、物流和项目管理等领域。这个话题主要涉及如何在Java中处理日期和时间,并考虑到法定节假日的影响。以下是对这一主题的详细阐述: 1. **日期和时间处理库*...

    java版根据日期和经纬度计算日出日落

    main函数需要三个参数,经纬度和距离2000-01-01的天数

    JAVA计算微积分源代码

    某天,突发奇想,有没有计算微积分的程序 找了半天,发现一些如 matlab 、《计算工厂》等软件, 就是没找到,能够以字符串形式输入表示式 并且能够方便JAVA调用的程序 于是花了3天做了一个

    java-jdk-8u51-windows-x64.exe.zip

    这个版本在2015年7月20日被标记为最新的,对于开发者来说,它是构建和运行Java应用程序的基础。下面将详细阐述Java JDK 8u51的关键知识点。 1. **Java Development Kit (JDK)**: JDK是Java编程语言的核心组件,它...

    java-11 windows-x64 安装包

    这个“java-11 windows-x64 安装包”是为了Windows 64位操作系统设计的,旨在为用户提供快速、简便的Java环境安装体验,尤其解决了在没有高速网络条件下的下载困扰。 首先,我们来详细了解一下Java 11的主要特性: ...

    Java自定义日期时间选择控件

    在Java编程中,自定义日期时间选择控件是常见的需求,尤其在开发用户界面时,以便用户能够方便地输入或选择日期和时间。本话题主要围绕如何创建一个自定义的日期时间选择控件进行展开,它支持多种日期时间格式,如...

    java jdk-8u60-windows-x64

    安装`jdk-8u60-windows-x64.exe`后,系统会包含JRE(Java Runtime Environment)和开发工具,如Java编译器(javac)、Java虚拟机(JVM)、Java文档生成器(javadoc)以及Java调试器(jdb)等。这些工具对于开发和...

    DES 3DES ANSI-9.9-MAC ANSI-X9.19-MAC JAVA实现

    本文将深入探讨标题提及的"DES 3DES ANSI-9.9-MAC ANSI-X9.19-MAC"的Java实现,这是一种结合了对称加密算法(DES和3DES)与消息认证码(MAC)的技术,用于增强数据完整性与安全性。 首先,DES(Data Encryption ...

    java 周算法 通过日期得到周信息

    ### Java周算法:通过日期...此外,这些方法在实际应用中可能还需要根据具体需求进行一定的调整和优化,例如考虑不同国家或地区对于周的定义可能存在差异,以及在特殊情况下(如闰年)如何更准确地处理日期计算等问题。

    java版 银联ANSI-X9.9-MAC算法

    从众多的网络资源中筛选出来的,已实际运用到了自己的项目中,绝对可以用!!!内含des单倍,双倍,三倍加密算法

Global site tag (gtag.js) - Google Analytics