关于指定日期的获取

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());
    }

关于指定日期的获取

时间: 2024-10-08 16:29:09

关于指定日期的获取的相关文章

oracle中从指定日期中获取月份或者部分数据

从指定日期中获取部分数据: 如月份: select to_CHAR(sysdate,'MM') FROM DUAL; 或者: select extract(month from sysdate) from dual; 又或者最笨的方法.用to_char()先把日期转化为指定格式的字符串,在通过substr()这个取到想要的数据. select substr(to_char(sysdate,'yyyy-mm-dd'),6,2) from dual; 获取日期其他部分数据和上方法一样.

MSSQL 获取指定日期所在星期的第一天和最后一天日期 获取指定日期坐在月的第一天和最后一天

ufn_GetWeekFirstAndEndDay    获取指定日期所在星期的第一天和最后一天日期 ALTER FUNCTION [dbo].[ufn_GetWeekFirstAndEndDay](@tmpDate DATETIME)RETURNS  @tmpTable TABLE(            FirstDay DATETIME ,          EndDay DATETIME   )ASBEGIN    INSERT INTO @tmpTable    SELECT a.Fi

PHP获取指定日期的上个月的日期 转

PHP获取指定日期的上个月的日期 function last_month_today($time){        $last_month_time = mktime(date("G", $time), date("i", $time),                    date("s", $time), date("n", $time), 0, date("Y", $time));        $

获取指定日期的常用前后节点(月初月末周一周末等等)

原文:获取指定日期的常用前后节点(月初月末周一周末等等) 注:周节点方面是根据中国习惯,视周一为起,周日为末. /*--------------------------------- 函数:获取某日期的特定起止节点v0.01 Author:AhDung Update:201305151755 ---------------------------------*/ ALTER FUNCTION dbo.FGetSpecialDate_ahdung(@date DATE, @SpcDate VARC

实例365(7)---------使用DateAdd方法向指定日期添加一段时间间隔,使用TimeSpan对象获取时间间隔

一:使用DateAdd方法向指定日期添加一段时间间隔,截图 二:代码 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using Microsoft.VisualBasic; na

php获取指定日期所在星期的开始时间与结束时间

function getWeekRange($date){    $ret=array();    $timestamp=strtotime($date);    $w=strftime('%u',$timestamp);    $ret['sdate']=date('Y-m-d 00:00:00',$timestamp-($w-1)*86400);    $ret['edate']=date('Y-m-d 23:59:59',$timestamp+(7-$w)*86400);    retur

Java各种日期格式的获取和设置指定日期

因为近期在做一个项目,发现项目中日期设置的bug,于是查阅了多方资料后.最终攻克了,为此写篇总结.方便日后的查阅. 多的不说了.直接上代码 package com.example.testdate; import java.text.DateFormat; import java.text.ParsePosition; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; impo

获取指定月 获取指定日期是星期几

public static List<ExcelDateHead> getByMonth(String date){ DateFormat dateFormat=new SimpleDateFormat("yyyy-MM"); Calendar c = Calendar.getInstance(); try { c.setTime(dateFormat.parse(date)); } catch (ParseException e) { // TODO: handle ex

获取指定日期下个月份的第一天

MS SQL Server自定义函数,指定一个日期,获取该日期的下一个月的第一天函数. 获取指定日期下个月份的第一天