`
lw671579557
  • 浏览: 104612 次
  • 性别: Icon_minigender_1
  • 来自: 湖南
社区版块
存档分类
最新评论

java使用Calendar类获得指定日期

    博客分类:
  • java
 
阅读更多

java使用Calendar类获得指定日期

   关于指定日期的获取,是根据指定日期和当前日期相差的天数,然后使用set方法设置Calendar.DAY_OF_MONTH的值。
    Calendar cal = Calendar.getInstance();
    cal.set(Calendar.DAY_OF_MONTH, cal.get(Calendar.DAY_OF_MONTH) - dayPlus);
    (dayPlus表示指定日期和当前日期相差的天数)
    不进行set,默认是获取系统时间,初步测试没有问题,可正确获得指定日期。
    *************************************************************************************************
    代码:
    // 获得当前日期
    public static String getDate() {
        Calendar cal = Calendar.getInstance();
        return getDate(cal);
    }

    // 获得日期
    private static String getDate(Calendar cal) {
        String v_strDate = "";
        int v_intYear = cal.get(Calendar.YEAR);
        int v_intMonth = cal.get(Calendar.MONTH) + 1;
        int v_intDAY = cal.get(Calendar.DAY_OF_MONTH);
        int v_intHOUR = cal.get(Calendar.HOUR_OF_DAY);
        int v_intMINUTE = cal.get(Calendar.MINUTE);
        int v_intSECOND = cal.get(Calendar.SECOND);
        
        if (v_intDAY < 10) {
            v_strDate = v_strDate + "0" + v_intDAY + "-";
        }else {
            v_strDate = v_strDate + v_intDAY + "-";
        }
        if (v_intMonth < 10) {
            v_strDate = v_strDate + "0" + v_intMonth + "-";
        }else {
            v_strDate = v_strDate + v_intMonth + "-";
        }
        v_strDate = v_strDate + v_intYear + " ";
        
        if (v_intHOUR < 10) {
            v_strDate = v_strDate + "0" + v_intHOUR + ":";
        }else {
            v_strDate = v_strDate + v_intHOUR + ":";
        }
        if (v_intMINUTE < 10) {
            v_strDate = v_strDate + "0" + v_intMINUTE + ":";
        } else {
            v_strDate = v_strDate + v_intMINUTE + ":";
        }
        if (v_intSECOND < 10) {
            v_strDate = v_strDate + "0" + v_intSECOND;
        } else {
            v_strDate = v_strDate + v_intSECOND;
        }
        cal = null;
        return v_strDate;
    }

    //获得当前日期与本周日相差的天数
    private static int getMondayPlus() {
        Calendar cd = Calendar.getInstance();
        // 获得今天是一周的第几天,星期日是第一天,星期二是第二天......
        int dayOfWeek = cd.get(Calendar.DAY_OF_WEEK) - 1; // 因为按中国礼拜一作为第一天所以这里减1
        if (dayOfWeek == 1) {
            return 0;
        } else {
            return dayOfWeek - 1;
        }
    }

    //获得本周一的日期
    public static String getThisMondayDate() {
        Calendar cal = Calendar.getInstance();
        int mondayPlus = getMondayPlus();
        cal.set(Calendar.DAY_OF_MONTH, cal.get(Calendar.DAY_OF_MONTH)-mondayPlus);
        cal.set(Calendar.HOUR_OF_DAY, 0);
        cal.set(Calendar.MINUTE, 0);
        cal.set(Calendar.SECOND, 0);
        return getDate(cal);
    }
   
    //获得本月1号的日期
    public static String getCurrentMonthBeginDate(){
        Calendar cal = Calendar.getInstance();
        cal.set(Calendar.DAY_OF_MONTH, 1);
        cal.set(Calendar.HOUR_OF_DAY, 0);
        cal.set(Calendar.MINUTE, 0);
        cal.set(Calendar.SECOND, 0);
        return getDate(cal);
    }
   
    //获得上周一的日期
    public static String getLastMondayDate(){
        Calendar cal = Calendar.getInstance();
        int dayPlus = getMondayPlus()+7;
        cal.set(Calendar.DAY_OF_MONTH, cal.get(Calendar.DAY_OF_MONTH)-dayPlus);
        cal.set(Calendar.HOUR_OF_DAY, 0);
        cal.set(Calendar.MINUTE, 0);
        cal.set(Calendar.SECOND, 0);
        return getDate(cal);
    }
   
    //获得上周日的日期
    public static String getLastSundayDate(){
        Calendar cal = Calendar.getInstance();
        int dayPlus = getMondayPlus()+1;
        cal.set(Calendar.DAY_OF_MONTH, cal.get(Calendar.DAY_OF_MONTH)-dayPlus);
        cal.set(Calendar.HOUR_OF_DAY, 23);
        cal.set(Calendar.MINUTE, 59);
        cal.set(Calendar.SECOND, 59);
        return getDate(cal);
    }
   
    //获得上月1号的日期
    public static String getLastMonthBeginDate(){
        Calendar cal = Calendar.getInstance();
        cal.set(Calendar.MONTH, cal.get(Calendar.MONTH)-1);
        cal.set(Calendar.DAY_OF_MONTH,1);
        cal.set(Calendar.HOUR_OF_DAY, 0);
        cal.set(Calendar.MINUTE, 0);
        cal.set(Calendar.SECOND, 0);
        return getDate(cal);
    }
   
    //获得上个月最后一天的日期
    public static String getLastMonthEndDate(){
        Calendar cal = Calendar.getInstance();
        cal.set(Calendar.DAY_OF_MONTH, 0);
        cal.set(Calendar.HOUR_OF_DAY, 23);
        cal.set(Calendar.MINUTE, 59);
        cal.set(Calendar.SECOND, 59);
        return getDate(cal);
    }

    public static void main(String[] args) {
        System.out.println(getDate());
        System.out.println(getThisMondayDate());
        System.out.println(getCurrentMonthBeginDate());
        System.out.println(getLastMondayDate());
        System.out.println(getLastSundayDate());
        System.out.println(getLastMonthBeginDate());
        System.out.println(getLastMonthEndDate());
    }
分享到:
评论

相关推荐

    Java 之 Date 和 Calendar 实例

    在Java编程语言中,`Date`和`Calendar`类是处理日期和时间的核心组件。这两个类在不同的Java版本中有着不同的使用方式和功能,对于理解Java时间处理机制至关重要。本篇将深入探讨`Date`和`Calendar`类的实例应用。 ...

    java 中Calendar日期格式的转换

    这个类允许我们指定日期/时间的格式,然后将`Date`对象转换为字符串,或将字符串解析为`Date`对象。结合`Calendar`类,我们可以实现更复杂的日期转换需求。 #### 示例:将`Calendar`转换为字符串 ```java import ...

    JAVA LunarCalendar返回农历(阴历)日期 JAR包 有包括详细DOC文档

    根据指定日期计算对应农历日期(这个计算方法是网上找的,最初的作者是谁已经无法考证了,感谢网络资源吧!),本人封装成好用的JAR包后发不出来,供大家免费下载! toString()方法输出阴历日期(例如:癸巳年七月...

    java中时间类Date和Calendar的使用

    `SimpleDateFormat`是`DateFormat`的子类,允许程序员指定日期和时间的格式。在`simpleDateFormat()`方法中,通过`SimpleDateFormat`可以解析和格式化日期。例如,`sdf1.parse(strDate)`将字符串转换为日期,`sdf2....

    JAVA Calendar,Date类详解

    4. `get(int field)`:获取指定日期字段的值,如`Calendar.YEAR`, `Calendar.MONTH`, `Calendar.DAY_OF_MONTH`等。 5. `set(int field, int value)`:设置指定日期字段的值。 6. `add(int field, int amount)`:在...

    JavaCalendar_JAVA源码_

    JavaCalendar是Java编程语言中用于处理日期和时间的重要类,它是`java.util.Calendar`的实现。这个源码分析将深入探讨Java中日期和时间的管理,以及如何利用`Calendar`类进行相关的操作。 首先,`Calendar`类是抽象...

    Java基于Calendar类输出指定年份和月份的日历代码实例

    本文主要介绍了Java使用Calendar类输出指定年份和月份的日历,通过示例代码详细介绍输出指定年份和月份的日历代码实例的实现过程。 Calendar类是Java中一个非常重要的类,提供了许多有用的方法来处理日期和时间相关...

    java中Calendar类制作日历

    在Java编程语言中,`Calendar`类是处理日期和时间的核心工具之一,它提供了一系列用于操作日期和时间的方法。然而,值得注意的是,`Calendar`类本身是一个抽象类,这意味着我们不能直接实例化它来创建一个对象。为了...

    java中Calendar类用法实例详解

    Java 中的 Calendar 类是一个非常重要的类,它提供了许多有用的方法和字段来处理日期和时间相关的操作。下面我们将详细介绍 Java 中 Calendar 类的用法实例。 首先,Calendar 类提供了许多常量字段,例如 DATE、DAY...

    java API 在包java.util中有一个GregorianCalendar类,使用它可以得到一年内某个月的日历.zip

    Java API中的`java.util.GregorianCalendar`类是用于处理日期和时间的重要工具,它提供了丰富的功能来满足各种日历操作需求。这个类是基于格里高利历(公历)的,是Java中最常用的日期时间类之一。在给定的压缩包...

    如何用java里的Calendar类编写万年历

    Java 中使用 Calendar 类实现万年历 在 Java 中,使用 Calendar 类可以轻松地实现万年历的功能,无需手动判断年份是否为闰年或平年,也无需判断一个月有多少天。Calendar 类提供了多种方法来获取日期和时间信息,...

    JAVA的Date类与Calendar类.docx

    Java中的Date类和Calendar类是处理时间和日期的重要工具。在早期的JDK版本中,Date类是主要的日期时间表示类,但在JDK1.1之后,为了更好地支持国际化和增强功能,推荐使用Calendar类。 Date类: 1. **表示当前时间*...

    java 日期帮助类

    这些方法的实现通常基于Java的`java.util.Calendar`类或Java 8引入的`java.time`包,它们提供了丰富的API来处理日期和时间。使用这样的帮助类,开发者可以更方便地处理各种复杂的日期时间问题,避免重复编写基础代码...

    日期类的加减及java中所以日期类的操作算法大全

    获取指定日期所在的年第几周 通过`Calendar`类,可以轻松获取或设置日期所在年的第几周: ```java Calendar cal = Calendar.getInstance(); cal.set(Calendar.YEAR, 2006); cal.set(Calendar.MONTH, 8); // 注意...

    java日期操作大全

    使用`java.util.Calendar`类可以方便地获取指定日期所在月份的第一天。首先,将输入的日期字符串转换为`java.util.Date`对象,然后通过`Calendar.getInstance()`创建一个`Calendar`实例,并将日期设置到该实例中。...

    java Calender类 日期的加减.docx

    Java Calendar类日期的加减 Java 中的 Calendar 类提供了日期和时间的操作功能,本文将对 Calendar 类的日期加减操作进行详细的介绍和分析。 Calendar 类的日期加减操作 Calendar 类的日期加减操作可以通过 set()...

    解析Date & Calendar类

    使用`java.text.SimpleDateFormat`类,可以将Date对象格式化为指定格式的字符串。例如,将日期加一天后,可以使用`SimpleDateFormat("yyyy-MM-dd")`格式化日期和时间。 - **JSP页面中的日期格式化**: 在JSP中,...

    java 日期算法

    日期类有两个主要的实现类:`java.util.Date` 和 `java.util.Calendar`。其中,`Date` 类代表着一个特定的瞬间,通常用来表示当前时间,而 `Calendar` 类则是一个抽象类,提供了更多的方法来操作日期和时间。 日期...

    java中的日期处理类总结

    Java中的日期处理涉及到多个类,包括Date、Calendar、GregorianCalendar以及日期格式化类如DateFormat和SimpleDateFormat。这些类主要用于管理、操作和格式化日期和时间。以下是对这些类的详细说明: 1. **Date类**...

    java日期操作工具类(获取指定日期、日期转换、相隔天数)

    在Java中,我们可以使用`java.util.Date`、`java.util.Calendar`以及`java.text.SimpleDateFormat`等类来完成日期和时间的操作。以下是对给定标题和描述中涉及的知识点的详细解释: 1. **获取指定日期** 在Java中...

Global site tag (gtag.js) - Google Analytics