`

java基础:java日期加减法

    博客分类:
  • java
阅读更多
转自:http://article.pchome.net/content-321470.html



有些时候,我们想在当前的日期上加几天、几个月,或几年,使用java.util.Date,却总也找不到合适的方法,无奈之下,请一个高人帮忙,老刘给了一句话:使用Canlender。之后,我就使用Calender,一用,还真好用,就写出来,和大家共同分享:

²   我的需求

我在作一个调查问卷,想设定问卷的有效天数:在发布之日后30天之内有效,怎么实现呢?

²   我的实现



/*

* @author 张毅

* 2005-12-14

*/

    Calendar calendar = Calendar.getInstance();

    //getTime()方法是取得当前的日期,其返回值是一个java.util.Date类的对象

    res.setResOpenDate(calendar.getTime());

    int day = calendar.get(Calendar.DAY_OF_YEAR);

    calendar.set(Calendar.DAY_OF_YEAR, day + 30);

    //投票的有效期30天

    res.setResEndDate(calendar.getTime());

²   详细说明

⑴Calendar是java.util.* 中的一个类,所以在使用前,我们要导入包java.util.*;

//产生一个日历类的对象,我们不能使用new Calendar()来构造实例,因为//Calendar的构造函数都是protected,也就是说,构造函数是保护成员。

⑵关于Calendar的Filed

在Calendar中定义了日历的各个成员,比如:年,月,日,包括不同的记录方法,比如:同一天(2005-12-14)来说,在记录的时候,我们可以说是一周中的周三,是12月的第14天,是2005年的第****(你可以自己算一下)天。这就是不同的记录方法,所以在Calendar中就有了不同的定义:



  public final static int ERA = 0;

  public final static int YEAR = 1;

  public final static int MONTH = 2;

  public final static int WEEK_OF_YEAR = 3;

  public final static int WEEK_OF_MONTH = 4;

  public final static int DATE = 5;

  public final static int DAY_OF_MONTH = 5;

  public final static int DAY_OF_YEAR = 6;

  public final static int DAY_OF_WEEK = 7;

  public final static int DAY_OF_WEEK_IN_MONTH = 8;

  public final static int AM_PM = 9;

  public final static int HOUR = 10;

  public final static int HOUR_OF_DAY = 11;

  public final static int MINUTE = 12;

  public final static int SECOND = 13;



这些定义是不同记录方法的标识,在此我没有列举完全,感兴趣的话你可以看一下Calendar的源代码。

这些就是Calendar的Field,根据你的不同需求就可以去处不同的Field,不同的记录方法也是不同的的Filed,这样应该是好理解一些。

有了这些,我们就可以取得你想要的任何需要的东西了,如果你想知道今天是一年中的哪一天,就可以用:

int day = calendar.get(Calendar.DAY_OF_YEAR);

参数就是你想取得的Field,所有的这些都在Calendar中定义好了。

结果会告诉我们2005-12-14是2005年的第348天。

然后你想知道30天后是几号呢?

calendar.set(Calendar.DAY_OF_YEAR, day + 30);

在这,你不需要去考虑12-14号加上30天是一月,是不是会出错,不会的,Calendar自己知道那一天是几月几号。

    所以你再取得其日期的时候就可以知道其日期了。当然你也可以直接通过Calendar来取得。

其他的我就不一一说了,是一样的道理。这样一来,我们就可以使用Calendar实现日期的随意加减了。

以上是我的个人体会,如果你有更好的认识,不妨大家共享。不足之处,还望观者指点。

  • 大小: 17.5 KB
分享到:
评论

相关推荐

    java对日期的加减操作

    Java 日期加减操作详解 Java 中对日期的加减操作是指对日期的加减、年、月、日、天等操作。Java 提供了多种方式来实现日期的加减操作,本文将详细介绍其中的两种方法。 使用 java.util.Calender 实现日期加减 ...

    java 大数加减法及乘法

    Java提供了一个内置的类`BigInteger`,用于进行任意精度的整数运算,包括加法、减法和乘法。`BigDecimal`类则用于处理带有小数点的大数。下面我们将详细讨论如何实现这些操作。 1. **大数加法**: `BigInteger`类...

    Java基础教程.md.pdf

    - 减法:`-` - 乘法:`*` - 除法:`/` - 取模:`%` ##### 5.2 关系运算符 - 等于:`==` - 不等于:`!=` - 大于:`>` - 小于:` - 大于等于:`>=` - 小于等于:` ##### 5.3 逻辑运算符 - 与:`&&` - 或:`||` - 非...

    java实现二十四节气计算

    这个函数可能需要包含一些数学运算,如求余数、加减法等,以适应不同节气的计算规则。 4. **封装为工具类**:为了方便使用,我们可以将这个功能封装成一个工具类,提供一个方法如`getSolarTerm(Date date)`,输入...

    java基础单词.docx

    "Java编程基础" Java是一种高级的、基于对象的、平台独立的编程语言。它是由Sun Microsystems公司开发的,于1995年发布。Java的主要特点是“Write once, run anywhere”,也就是说只要在Java平台上编译好的程序,就...

    实现日期加1的一个Date类

    标题提到的"实现日期加1的一个Date类"正是这样一个自定义的类,它允许用户对日期进行增加一天的操作,并且提供了设置日期的功能。以下是对这个Date类可能实现的详细说明: 首先,Date类通常会包含私有成员变量来...

    java 日期操作

    日期的计算,图书馆图书超期天数,日期加减法、date与String的转换

    JAVA经典例子难得一见

    根据提供的文件信息,我们可以整理出一系列与Java编程相关的知识点,这些知识点涵盖了从基本概念到具体实践的应用案例。接下来,我们将对这些...希望这些内容能够帮助你更好地理解和掌握 Java 编程的基础和进阶知识。

    JAVA期末上机试题[汇编].pdf

    4. **加减法计算游戏**:这个题目要求使用多级定时器和事件处理,可能需要使用java.util.Timer类。根据用户输入的答案和预设的时间限制调整游戏难度,同时需要有异常处理机制来处理超时和非法输入的情况。 5. **...

    JAVA课程设计题目.docx

    - 算术运算:实现加减法的计算逻辑。 - 试题生成:随机生成一定范围内的算术题目。 - 成绩评定:根据用户的答案给出评分。 - **实践技能**:掌握基础数学运算方法,学会设计教育软件。 18. **模拟科学计算器** ...

    hive时间按月份加减UDF

    例如,`SELECT add_months(date_column, 3) FROM table` 将会返回date_column字段的日期加3个月的结果。 在实际应用中,你可能还需要考虑一些复杂情况,如闰年、月份天数不一致等问题。对于UDF的实现,你可能需要...

    面向对象原理与Java实践课程实验-对象和类

    ### 面向对象原理与Java实践课程实验-对象和类 #### 实验目的与要求 ...此外,这些实验还涉及到了一些重要的编程技巧,如循环控制结构、条件判断、异常处理等,这些都是编写高质量Java程序所必需的基础技能。

    android日期相减

    在Android中,我们可以使用`java.util.Date`或`java.time`包(自Java 8起)来处理日期。`Date`类提供了`getTime()`方法,返回以毫秒为单位的日期时间值,通过这个值我们可以进行日期相减。例如,如果你有两个`Date`...

    JAVA计算器

    5. **日期和时间**:Java提供java.util.Date和java.time包来处理日期和时间。在计算器中,我们可以利用这些类获取当前时间,并将其与计算过程一起存储。这需要理解日期时间的格式化和转换方法。 6. **文件I/O操作**...

    常用java程序实例

    通过数学加减法的操作实现了变量值的交换。 ### 2. 使用`Math.Random()`生成随机数 `Math.Random()`方法用于生成介于0到1之间的一个随机浮点数(包括0,但不包括1)。利用此特性,可以轻松地生成指定范围内的随机...

    完整版日期设置模块.rar

    3. **日期运算**:日期设置模块应支持日期的加减运算,例如增加或减少天数、月份或年份。这可以通过内置的日期运算方法实现,比如在Python中,可以对`datetime`对象进行加法和减法操作。 4. **时间区间计算**:模块...

    Java课程设计可选题目及任务书.doc

    1. 算术运算测试:这个项目要求实现一个字符或图形界面的程序,生成10道100以内的加减法题目,用户输入答案并检查正确性,最后计算得分。 2. 猜数游戏:用户需要猜电脑随机生成的数字,程序会根据猜测提供反馈,...

    java课设(计算器).pdf

    本设计要求设计一个功能丰富的计算器,不仅包括基本的加减乘除运算,还增加了日期计算功能,能够计算两个日期之间的天数。此外,还需要考虑用户界面的布局、按钮事件监听以及异常处理。 **一、设计要求** 1. **...

Global site tag (gtag.js) - Google Analytics