精华内容
下载资源
问答
  • javascript脚本获取当月第一天日期和最后一天日期,脚本测试正确无误。
  • 以下getdate()为获取当天的日期,按照实际需求,可以替换成参数或实际的日期当月天数select day(dateadd(ms,-3,DATEADD(m, DATEDIFF(m,0,getdate())+1,0)))当月第一天...当月最后一天select dateadd(d,-day(getdate...

    以下getdate()为获取当天的日期,按照实际需求,可以替换成参数或实际的日期


    当月天数

    select day(dateadd(ms,-3,DATEADD(m, DATEDIFF(m,0,getdate())+1,0)))

    当月第一天

    select   dateadd(d,-day(getdate())+1,getdate()) 

    当月最后一天

    select   dateadd(d,-day(getdate()),dateadd(m,1,getdate()))

    本年最后一天

    select   dateadd(d,-day(getdate()),dateadd(m,12,getdate()))

    当月第一个星期一

    SELECT DATEADD(wk, DATEDIFF(wk, '', DATEADD(dd, 6 - DAY(getdate()), getdate())), '')


    举个例子加以说明,以下案例是由于我原先采用substring将条件栏位转换为字符,导致性能上有所降低,后来直接引用以上函数并与月份函数有效结合而成,供大家参考:

    引用前 

    --where SUBSTRING(CONVERT(VARCHAR(12),Date1,112), 0, 7)=SUBSTRING(CONVERT(VARCHAR(12),DATEADD(MONTH,0,@fDate),112),0,7) 
    引用后

    WHERE Date1>=dateadd(d,-day(@fDate)+1,@fDate) AND Date1<DATEADD(MONTH,1,dateadd(d,-day(@fDate)+1,@fDate))

    展开全文
  • let date=new Date(); let currentMonth=date.getMonth(); let nextMonth=++currentMonth; let nextMonthFirstDay=new Date(date.getFullYear(),nextMonth,1); l...
              let date=new Date();
              let currentMonth=date.getMonth();
              let nextMonth=++currentMonth;
              let nextMonthFirstDay=new Date(date.getFullYear(),nextMonth,1);
              let oneDay=1000*60*60*24;
              endDate =new Date(nextMonthFirstDay-oneDay)
    
    展开全文
  • 获取前一天、后一天的时间

    一、获取指定日期的前一天、后一天的时间

    指定日期可以是今天或者某一天

    拿到今天的前一天、后一天

    拿到今天的日期:Date date=new Date();

    Calendar calendar=Calendar.getInstance();
    calendar.setTime(new Date());
    //拿到前一天
    calendar.add(Calendar.DAY_OF_MONTH,-1);
    //获取后一天
    calendar.add(Calendar.DAY_OF_MONTH, 1);
    SimpleDateFormat simpleDateFormat=new SimpleDateFormat("yyyy-MM-dd");
    return simpleDateFormat.format(calendar.getTime());
    

    获取指定日期的前一天

    通过calendar.add(Calendar.DAY_OF_MONTH,-1)来得到前一天的日期

    /**
    	@param: 入参是当前时间2020-03-01
    	@return:返参是前一天的日期,理应为2020-02-29(闰年)
    */
    private String getBeforeDay(String dateTime){
       	SimpleDateFormat simpleDateFormat=new SimpleDateFormat("yyyy-MM-dd");
       	Date date = null;
    	try{
           	date=simpleDateFormat.parse(dateTime);
        }catch (ParseException e){
            logger.error("String转Date日期失败:",e);
        }
    	Calendar calendar=Calendar.getInstance();
    	calendar.setTime(date);
    	//往前一天
    	calendar.add(Calendar.DAY_OF_MONTH,-1);
    	return simpleDateFormat.format(calendar.getTime());
    }
    

    获取指定日期的后一天

    跟获取前一天相反:calendar.add(Calendar.DAY_OF_MONTH,1)

    /**
    	@param: 入参是当前时间2020-02-29
    	@return:返参是后一天的日期,理应为2020-03-01
    */
    private String getNexteDay(String dateTime){
       	SimpleDateFormat simpleDateFormat=new SimpleDateFormat("yyyy-MM-dd");
       	Date date = null;
    	try{
           	date=simpleDateFormat.parse(dateTime);
        }catch (ParseException e){
            logger.error("String转Date日期失败:",e);
        }
    	Calendar calendar=Calendar.getInstance();
    	calendar.setTime(date);
    	//往后一天
    	calendar.add(Calendar.DAY_OF_MONTH,1);
    	return simpleDateFormat.format(calendar.getTime());
    }
    

    二、日期格式转换:yyyy-MM转为yyyyMM

    下面的操作会将String型 2020-12 转换为202012,反之改改也能用

    //将2020-12 转换为 202012
    private String dateFormatChange(String dateTime){
    	//入参的日期格式:yyyy-MM
    	SimpleDateFormat simpleDateFormatInput=new SimpleDateFormat("yyyy-MM");
    	Date date=null;
    	//返参的日期格式: yyyyMM
    	SimpleDateFormat simpleDateFormatOutput=new SimpleDateFormat("yyyyMMdd");
    	try{
    		//Date型 yyyy-MM
    		date = simpleDateFormatInput.parse(dateTime);
    	}catch (ParseException e){
    		logger.error("日期格式转换失败(2020-11 => 20201102):",e);
    	}
    	return simpleDateFormatOutput.format(date);
    }
    

    三、自然月计算

    举个例子:消费红包在2020年12月15日发放,有效期一个月,那么该红包将会在12月31日23:59过期。而不是在2021年1月15日过期

    如果我们要判断这个红包现在是否过期,那么就要拿到2020年12月的最后一天

    获取 [ 当月 /某个月] 的最后一天日期

    思路:getActualMaximum(Calendar.DAY_OF_MONTH)能够拿到一个月的 最大天数,可作为一个月的最后一天

    /**
    	@param dateTime: 发放生效日期2020-12-15
    	@param expire:有效期 1个月
    	@return: 获得失效日期 即当月的最后一天, 入参是2020-12-15,它所在的月的最后一天是31号
    */ 
    private String calculateEndDate(String dateTime,int expire){
    	Calendar calendar=Calendar.getInstance();
    	Date date=null;
    	SimpleDateFormat simpleDateFormat=new SimpleDateFormat("yyyy-MM-dd");
    	try{
    		date=simpleDateFormat.parse(dateTime) ;
    	}catch(ParseException e){
    		logger.error("String =>Date格式转换失败",e);
    	}
    	calendar.setTime(date);
    	//自然月的计算规则,2020-12-15发放,有效期1个月,那过期时间是12月31号
    	calendar.add(Calendar.MONTH,expire-1);
    	//getActualMaximum(Calendar.DAY_OF_MONTH) 得到了31天
    	calendar.set(Calendar.DAY_OF_MONTH,calendar.getActualMaximum(Calendar.DAY_OF_MONTH));
    	//获得当月的最后一天日期 2020-12-31
    	String endDate=simpleDateFormat.format(calendar.getTime());
    	return endDate;
    }
    

    获得当月的第一天

    这个一般是在定时任务里面会用到,比如当月第一天对账

    思路:

    • 获得当月最小天数:calendar.set(Calendar.DAY_OF_MONTH,calendar.getActualMinimum(Calendar.DAY_OF_MONTH))
    • 直接set :calendar.set(Calendar.DAY_OF_MONTH, 1)
    /**
    	@param: 指定的日期,如 2020-12-29
    	@return: 返回当月的第一天,应为2020-12-01
    */
    private String getFirstDay(String dateTime){
    	SimpleDateFormat simpleDateFormat=new SimpleDateFormat("yyyy-MM-dd");
    	Date date = null;
    	try{
            date=simpleDateFormat.parse(dateTime);
        }catch (ParseException e){
            logger.error("String转Date日期失败:",e);
        }
        Calendar calendar=Calendar.getInstance();
        calendar.setTime(date);
        /**
        	1. getActualMinimum(Calendar.DAY_OF_MONTH)是拿到当月最小天数作为第一天
        	
        	2. calendar.set(Calendar.DAY_OF_MONTH, 1)也能获取当月第一天
        */
        calendar.set(Calendar.DAY_OF_MONTH,calendar.getActualMinimum(Calendar.DAY_OF_MONTH));
        return simpleDateFormat.format(calendar.getTime());
    }
    
    展开全文
  • java:获取当月最后一天

    万次阅读 2018-09-14 14:51:58
    //设置时间格式 SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); //获得实体类 ...//设置最后一天 ca.set(Calendar.DAY_OF_MONTH, ca.getActualMaximum(Calendar.DAY_OF_MO...
    //设置时间格式
    SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); 
    //获得实体类
    Calendar ca = Calendar.getInstance();    
    //设置最后一天
    ca.set(Calendar.DAY_OF_MONTH, ca.getActualMaximum(Calendar.DAY_OF_MONTH));
    //最后一天格式化
    String lastDay = format.format(ca.getTime());
    展开全文
  • shell脚本判断一天是否是当月最后一个周四 需求 最近遇到了这样的一个需求,要求在每个月的最后一个周四加三天来执行一个固定的脚本,于是就因为判断最后一个周四用了很久,在此记录一下。 实现的思路 整体...
  • java获取当月最后一天

    2020-08-25 16:01:41
    * 当月最后一天 * @param timeFlag 是否带时分秒, true是 * @return */ public static String getLastDay(boolean timeFlag) { SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd"); Calendar ...
  • hive获取当月第一天 和最后一天

    千次阅读 2020-08-07 11:38:33
    trunc('2020-08-07','MM')-- 获取当月第一天 last_day('2020-08-07')-- 获取当月最后一天
  • //重置为当月第一天 dtValueStart = new DateTime(dtValueStart.Year, dtValueStart.Month, 1)...//重置为当月最后一天 dtValueEnd = new DateTime(dtValueEnd.Year, dtValueEnd.Month, 1).AddMonths(1).AddDays(-1);
  • 取某月天数:select day(dateadd(month,1,'2012-02-01')-1) --当月天数 select day(dateadd(ms,-3,DATEADD(m, DATEDIFF(m,0,getdate())+1,0))) ---当月第一天 select dateadd(d,-day(getdate...---当月最后一天 select
  • shell获取当月第一天,最后一天

    千次阅读 2019-03-06 14:28:09
    date +"%Y%m01" #当月第一天 date -d"$(date -d"1 month" +"%Y%m01") -1 day" +"%Y%m%d" #当月最后一天 date +"%Y%m$(cal|sed 'N;... #当月最后一天
  • php获取当月天数及当月第一天及最后一天、上月第一天及最后一天,下个月的第一天,最后一天的实现方法 在做查询过程中,例如要实现查上个月从第一天到最后一天的佣金(提成),那我们在程序实现过程中就要让程序在上个...
  • 在做查询过程中,例如要实现查上个月从第一天到最后一天的佣金(提成),那我们在程序实现过程中就要让程序在上个月的范围内查询,第一天是比较好办,但最后一天就不定,要去写段函数进行月份及年份判断来得出上个月共有...
  • select day(dateadd(month,1,'2012-02-01')-1) --当月天数select day(dateadd(ms,-3,DATEADD(m, DATEDIFF(m,0,getdate())+1,0))) ---当月第一天select dateadd(d,-day(getdate())+1,getdate()) ---当月最后一天sele....
  • [code="java"]if [ $(date +%e) -eq $(cal|xargs|awk '{print $NF}') ]; then echo "last day" else echo "not last day" fi if [ "$(date +%m)"...echo
  • 取某月天数:select day(dateadd(month,1,'2012-02-01')-1) --当月天数 select day(dateadd(ms,-3,DATEADD(m, DATEDIFF(m,0,getdate())+1,0))) ---当月第一天 select dateadd(d,-day...---当月最后一天 ...
  • 最近被日期弄得很头疼,由于js的...首先,以下代码均有个共同的日期格式化函数 //日期格式化 Date.prototype.format = function(format) { var o = { "M+" : this.getMonth() + 1, // month "d+" : this.getD
  • 返回给定日期当月的第一天和最后一天的日期
  • 1 /** 2 * 日期-获取当月最后一天 3 * @return int 4 */ 5 public function get_lastday() { 6 if($this->month==2) { 7 $lastday = $this->is_leapyear...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 7,849
精华内容 3,139
关键字:

判断当月最后一天