用到的時間工具:前後x天,前後x分鐘,某小時初始,某小時結束,週一,週日,月第一天,月最後一天,季度第一天,季度最後一天,年度第一天,年度最後一天
程式碼如下:
// 當天前後x天的時間,value負數表示x天前,正數表示x天后 fun getDay(value: Int): Timestamp { val cal = Calendar.getInstance() cal.add(Calendar.DAY_OF_MONTH, value) return Timestamp(cal.timeInMillis) } // 某個時間x分鐘前後的時間,value負數表示x分鐘前,正數表示x分鐘後 fun getMinute(currentTime: Timestamp, value: Int): Timestamp { val cal = Calendar.getInstance() cal.time = currentTime cal.add(Calendar.MINUTE, value) return Timestamp(cal.timeInMillis) } // 當天某小時初始時間,value表示某小時 fun getHourStart(value: Int): Timestamp { val cal = Calendar.getInstance() cal.set(Calendar.HOUR_OF_DAY, value) cal.set(Calendar.SECOND, 0) cal.set(Calendar.MINUTE, 0) cal.set(Calendar.MILLISECOND, 0) return Timestamp(cal.timeInMillis) } // 當天某小時結束時間,value表示某小時 fun getHourEnd(value: Int): Timestamp { val cal = Calendar.getInstance() cal.set(Calendar.HOUR_OF_DAY, value) cal.set(Calendar.SECOND, 59) cal.set(Calendar.MINUTE, 59) cal.set(Calendar.MILLISECOND, 999) return Timestamp(cal.timeInMillis) } // 週一時間 value: 0表示本週,1表示下週,-1表示上週 fun getWeekStartTime(value: Int): Timestamp { val cal = Calendar.getInstance() val weekday = cal.get(Calendar.DAY_OF_WEEK) - value * 7 cal.add(Calendar.DATE, 2 - weekday) return Timestamp(cal.timeInMillis) } // 週日時間 value: 0表示本週,1表示下週,-1表示上週 fun getWeekEndTime(value: Int): Timestamp { val cal = Calendar.getInstance() val weekday = cal.get(Calendar.DAY_OF_WEEK) - value * 7 cal.add(Calendar.DATE, 8 - weekday) return Timestamp(cal.timeInMillis) } // 月第一天時間 value: 0表示本月,1表示下月,-1表示上月 fun getMonthStartTime(value: Int): Timestamp { val cal = Calendar.getInstance() cal.add(Calendar.MONTH, value); cal.set(Calendar.DAY_OF_MONTH, cal.getActualMinimum(Calendar.DAY_OF_MONTH)) return Timestamp(cal.timeInMillis) } // 月最後一天時間 value: 0表示本月,1表示下月,-1表示上月 fun getMonthEndTime(value: Int): Timestamp { val cal = Calendar.getInstance() cal.add(Calendar.MONTH, value); cal.set(Calendar.DAY_OF_MONTH, cal.getActualMaximum(Calendar.DAY_OF_MONTH)) return Timestamp(cal.timeInMillis) } // 季度第一天時間 value: 0表示本季度,1表示下季度,-1表示上季度 fun getQuarterStartTime(value: Int): Timestamp { val cal = Calendar.getInstance() val currentMonth = cal.get(Calendar.MONTH) + 1 + value * 3 //只計算到去年第四季度或明年第一季度 val month: Int = if (currentMonth < 1) 9 else if (currentMonth in 1..3) 0 else if (currentMonth in 4..6) 3 else if (currentMonth in 7..9) 6 else if (currentMonth in 10..12) 9 else 0 if (currentMonth < 1) cal.add(Calendar.YEAR, -1) else if (currentMonth > 12) cal.add(Calendar.YEAR, 1) else { } cal.set(Calendar.MONTH, month) cal.set(Calendar.DATE, 1) return Timestamp(cal.timeInMillis) } // 季度最後一天時間 value: 0表示本季度,1表示下季度,-1表示上季度 fun getQuarterEndTime(value: Int): Timestamp { val cal = Calendar.getInstance() val currentMonth = cal.get(Calendar.MONTH) + 1 + value * 3 //只計算到去年第四季度或明年第一季度 val month: Int = if (currentMonth < 1) 11 else if (currentMonth in 1..3) 2 else if (currentMonth in 4..6) 5 else if (currentMonth in 7..9) 8 else if (currentMonth in 10..12) 11 else 2 val day: Int = if (currentMonth < 1) 31 else if (currentMonth in 1..3) 31 else if (currentMonth in 4..6) 30 else if (currentMonth in 7..9) 30 else if (currentMonth in 10..12) 31 else 31 if (currentMonth < 1) cal.add(Calendar.YEAR, -1) else if (currentMonth > 12) cal.add(Calendar.YEAR, 1) else { } cal.set(Calendar.MONTH, month) cal.set(Calendar.DATE, day) return Timestamp(cal.timeInMillis) } //年度第一天時間 value: 0表示今年,1表示明年,-1表示去年 fun getYearStartTime(value: Int): Timestamp { val cal = Calendar.getInstance() cal.add(Calendar.YEAR, value); cal.set(Calendar.MONTH, 0) cal.set(Calendar.DATE, 1) return Timestamp(cal.timeInMillis) } //年度最後一天時間 value: 0表示今年,1表示明年,-1表示去年 fun getYearEndTime(value: Int): Timestamp { val cal = Calendar.getInstance() cal.add(Calendar.YEAR, value); cal.set(Calendar.MONTH, 11) cal.set(Calendar.DATE, 31) return Timestamp(cal.timeInMillis) }
部分自測的結果
@Test fun testDate(){ val value = 4 val ds = commUtil.getHourStart(0) val de = commUtil.getHourEnd(23) val dd = commUtil.getHourStart(8) val ws = commUtil.getWeekStartTime(-38) val we = commUtil.getWeekEndTime(-38) val ms = commUtil.getMonthStartTime(value) val me = commUtil.getMonthEndTime(value) val qs = commUtil.getQuarterStartTime(-5) val qe = commUtil.getQuarterEndTime(-5) val ys = commUtil.getYearStartTime(value) val ye = commUtil.getYearEndTime(value) log.info(">>>天:$ds>>>$de>>>$dd>>>周:$ws>>>$we>>>月:$ms>>>$me>>>季:$qs>>>$qe>>>年:$ys>>>$ye") }
當天0點,當天24點,當天8點,38周前週一,38周前週日,四個月後月初,四個月後月末,去年第四季度起始,去年第四季度結束,四年年初,四年年末
>>>天:2018-09-19 00:00:00.0>>>2018-09-19 23:59:59.999>>>2018-09-19 08:00:00.0>>>周:2017-12-25 11:29:01.449>>>2017-12-31 11:29:01.449>>>月:2019-01-01 11:29:01.449>>>2019-01-31 11:29:01.449>>>季:2017-10-01 11:29:01.449>>>2017-12-31 11:29:01.449>>>年:2022-01-01 11:29:01.449>>>2022-12-31 11:29:01.449
相關推薦
用到的時間工具:前後x天,前後x分鐘,某小時初始,某小時結束,週一,週日,月第一天,月最後一天,季度第一天,季度最後一天,年度第一天,年度最後一天
程式碼如下: // 當天前後x天的時間,value負數表示x天前,正數表示x天后 fun getDay(value: Int): Timestamp { val cal = Calendar.getInstance() c
介紹一個axios除錯好用的工具:axios-mock-adapter
上一篇文章中寫到用promise時應注意的問題,這一篇文章繼續介紹一個可以和axios庫配合的好工具: axios-mock-adapter。axios-mock-adapter可以用來攔截http請求,並模擬響應,使用起來也很簡單,比如你想模擬下伺服器返回個500錯誤,你可以這麼寫: 1 impo
時間工具類DateUlits,判斷某一時間距離當前時間幾分鐘、幾小時、幾天前
在我們開發中經常要對時間進行處理,把這些處理方法做成一個工具類是十分方面的,下面是我整理的一些時間處理的方法。 DateUlits方法目錄: 1、列印當前日期 2、輸入年-月-日 轉化為date型別 3、獲得一個 Date 物件例項 4、設定時間 5、獲取當前時間的前一
js實現釋出了多久的時間描述:幾分鐘前,幾小時前,幾天前,幾個月前,幾年前
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head&
日期格式化:SimpleDateFormat,以及獲取當前周的週一和週日的日期,當前月第一個和最後一天的日期
import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Calendar;/** * @author 作者:吳林飛 * @version 建立時間:2018年4月22
計算指定時間與當前的時間差 比如,3天前、10分鐘前
計算指定時間與當前的時間差 比如,3天前、10分鐘前(這個在專案中經常遇到,所以記錄了下來) 以下是實現方法: /** * 計算指定時間與當前的時間差 * @param compareDate 某一指定時間 * @return 多少(秒or分or天or
js實現文章或個人動態釋出了多久的時間描述:幾分鐘前,幾小時前,幾天前等
一般來說,為提高使用者體驗,在某些管理文章或個人動態時,需要在右下角顯示該文章或該動態已經發布了多久。 那麼該需求具體到底怎麼實現呢?如果沒思路可能會覺得有點難,但是一旦有了思路之後,其實實現起來很簡單。 1.首先我們要明確顯示的時間層具體有幾層; 2.要明確年月日時分
微信支付報錯:time_expire時間過短,刷卡至少1分鐘,其他5分鐘]
log pre 原來 exp 其他 str brush 支付 clas 查了下代碼: $input->SetTime_expire(date("YmdHis", time() + 600));//二維碼過期時間。默認10min 10分鐘,沒問題。 網上查了下
GA:利用GA對一元函數進行優化過程,求x∈(0,10)中y的最大值——Jason niu
title variable ati 過程 優化 mea ... http [] x = 0:0.01:10; y = x + 10*sin(5*x)+7*cos(4*x); figure plot(x, y) xlabel(‘independent variable
快速開發專案,用到的工具:UI 設定利器 sketch
需求設計: axaure8.0 tool: teambition/石墨、幕布、 介面管理tool(後端開發介面,pc,m,app使用) https://www.eolinker.com/#/ ui 設計大都用sketch sketch只有蘋果版; 管理工具用藍湖
Linux下的開發工具:vim,gcc,gdb,makefile以及yum語句安裝軟體
Linux下的開發工具:vim,gcc,gdb,makefile以及yum語句安裝軟體 1. vi/vim vi/vim都是多模式編譯器,vim是vi的升級版本。vim有12個模式,在這我們先說3種模式,命令模式,插入模式,底行模式。 2. vim基本操作: $vim t
JS用函式實現:輸入年,月,日,獲取這個日期是這一年的第多少天
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title></title> </head> <body>
工具:java根據第一張表製作第二張表的主鍵(在一個字串的基礎上增加位數,有順序)
1.我根據實際實況說明,兩張有聯絡的表,為了避免建立很多欄位,可以在第一張表的主鍵基礎上增加幾位作為第二張表的主鍵,這幾位是有順序的。java方法如下,傳參需要第二張表的表名,第一張表的主鍵,第二張表相關記錄的最大主鍵,例如:eb592e35c51c4dfb89300448c80d3a400003,
Java編碼輔助工具:Lombok —— 避免重複臃腫的程式碼,提高效率
在專案開發過程中,經常會涉及到一些調整很少但又必不可少的環節,比如實體類的Getter/Setter方法,ToString方法等。這時可以使用Lombok來避免這種重複的操作,減少非核心程式碼的臃腫,提高編碼效率。 如何在IntelliJ IDEA中引入Lombok 安裝Lombok
Java編碼輔助工具:Lombok —— 避免重復臃腫的代碼,提高效率
actor tin protect oge details err con bsp transient 在項目開發過程中,經常會涉及到一些調整很少但又必不可少的環節,比如實體類的Getter/Setter方法,ToString方法等。這時可以使用Lombok來避免這種重復的
Java基礎複習第五天,陣列定義(靜態、動態初始化),陣列儲存機制及陣列的反轉、排序、遍歷
一 陣列定義和訪問 1.案例引入: 如果需要定義多個變數,那麼我們建議使用容器,一次性儲存多個數據,統一操作。 2.容器: 是將多個數據儲存到一起,每個資料稱為該容器的元素。 3.Java中容器: 陣列,集合 陣列:是一個長度固定的容器,而且容器中的元素
What-If 工具:無需寫程式碼,即可測試機器學習模型
文 / Google AI 軟體工程師 James Wexler 來源 | TensorFlow 公眾號 構建有效的機器學習 (ML) 系統需要提出許多問題。僅僅訓練一個模型,然後放任不管,是遠遠不夠的。而優秀的開發者就像偵探一樣,總是不斷探索,試圖更好地理解自
Android時間工具類 本地轉UTC,UTC轉本地
package com.peopleapp.en.util; import android.content.Context; import android.text.TextUtils; import android.text.format.DateFor
DOS工具: 自動從VSS獲取並編譯,複製,上傳,打包的工具
@echo offrem -- =============================================rem -- DESCRIPTION: <自動_VSS管理バッチ>rem -- AUTHOR: <>rem -- CREATE
1.7 開始第一幅“碼繪”——用時間控制變數,讓懵逼臉動起來
引言——碼繪的缺點和優點 在之前的程式中,所有懵逼臉的表情都是僵住不動的。 如此一來,相比於傳統紙面繪畫,碼繪技術還體現不出什麼優點,可以說還有一系列缺點: 編寫程式碼麻煩容易出現筆誤,學習程式語言