1. 程式人生 > >java 根據兩個時間,按周分組

java 根據兩個時間,按周分組

public static void main(String[] args) throws ParseException {
    System.out.println(getResults("2017-12-01","2018-02-02"));
}
public static List<String> getResults(String a, String b) throws ParseException {
     a = "2017-12-01";
     b = "2018-02-02";

    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-mm-dd");
            Date ad = sdf.parse(a);
            Date bd = sdf.parse(b);

            Calendar cl1 = Calendar.getInstance();
            cl1.setTime(ad);
            Calendar cl2 = Calendar.getInstance();
            cl2.setTime(bd);

            System.out.println(cl1.get(Calendar.YEAR) + "-" + cl1.get(Calendar.DAY_OF_WEEK));

            Map<Integer, List<String>> result = new HashMap<Integer, List<String>>();

            int num = 0;

            while (true) {
                if (cl2.compareTo(cl1) <= 0) {
                    break;
                }

                int count = 7;

                if (num == 0) {
                    int day = cl1.get(Calendar.DAY_OF_WEEK) - 1;
                    day = day == 0 ? 7 : day;
                    count = 7 - day + 1;
                }
                if (!result.containsKey(num)) {
                    result.put(num, new ArrayList<String>());
                }

                for (int i = 0; i < count; i++) {
                    result.get(num).add(sdf.format(cl1.getTime()));
                    cl1.add(Calendar.DAY_OF_WEEK, 1);
                    if (cl2.compareTo(cl1) <= 0) {
                        break;
                    }
                }
                num++;
            }

            List<String> time = new ArrayList<String>();

            for (Map.Entry<Integer, List<String>> entry : result.entrySet()) {
                List<String> temp = entry.getValue();
                String str = temp.get(0) + "~" + temp.get(temp.size() - 1);
                time.add(str);
            }
            return time;
    }

保持一個記筆記的習慣,有的地方可能不是很對.,另有此文章為一位論壇老哥(pengfeizhang1994)教的,再次感謝.

相關推薦

java 根據時間,分組

public static void main(String[] args) throws ParseException { System.out.println(getResults("2017-12-01","2018-02-02")); } public s

java獲取時間之間有多少天

/** * date2比date1多的天數 * @param date1 * @param date2 * @return */ public static int differentDays(Date date1,Date date2) { Calendar cal1 = Cal

java時間相減

間隔=Date1.getTime()-Date2.getTime();得出來的是毫秒數. 除1000是秒,再除60是分,再除60是小時. SimpleDateFormat myFormatter = new SimpleDateFormat( "yyyy-MM-dd "

Java 根據傳入的指定年月日計算出相差的月份,並最終四捨五入計算出年份

筆者前段時間做一個專案需要這個需求:經過了解我們需要使用到這個包 jodd-time 其中maven依賴如下:         <dependency>             <

java 判斷時間相差的天數

1、實現目標   輸入:兩個日期   輸出:兩個日期相差的天數 2、程式碼實現 方法1:   通過Calendar類的日期比較。注意:這裡需要考慮一下:   日期是跨年份的,如一個是2012年,一個是2015年的    年份是分閏年和平年的,各自的天數不同 /

Java計算時間的時間差

JAVA計算兩個時間的時間差 現在是:2015-07-23 12:59:28 過去是:2015-07-23 09:44:23 要獲得兩個日期差,差的形式為:xx天xx小時xx分xx秒 示例程式碼如下:

java根據地點的經緯度計算兩點間距離

上程式碼(複製到專案中可直接使用):import java.text.DecimalFormat; /** * @author [email protected] * @date 201

Java時間點的相隔天數和相差天數解析

咋一看“相隔天數”和“相差天數”,似乎好像大概沒有什麼區別,但是仔細琢磨一下,這兩個名詞是有區別的。 相差天數 通常我們在專案開發中需要用到有關時間的計算問題,如:計算兩個日期之間相差的天數。 public int getDays(Date start,

Java比較時間大小方法記錄

@GetMapping("/compare/time/{start}/{end}") public static Integer compareTime(@PathVariable String start, @PathVariable String end) throws

Java計算日期時間相差幾天,幾小時,幾分鐘等

目錄 方法一: 方法二: 方法三: java 比較時間大小 現在是2004-03-26 13:31:40 過去是:2004-01-02 11:30:24 要獲得兩個日期差,差的形式為:XX天XX小時XX分XX秒 方法一: DateFormat df = new Si

Java判斷Date/時間戳 物件是否是同一天

最近有個需求是判斷在建立新物件的今天之前已經建立了這個物件,如果是昨天建立的,則正常; 通過Calendar來獲取date物件的年份和在該年份中第幾天,然後比較這兩個資訊來判斷是不是同一天 Simp

獲得這時間的所有天數及其

List<DateUtil> dateList = new ArrayList<>(); long distance = ChronoUnit.DAYS.between(tod

Java根據傳入Date計算所在、月、季度時間

  package com.rdmu.schedulingmeetingplace.common; import org.hibernate.annotations.SourceType; import java.text.ParseException; import java

java工具類-計算相對時間的工具類即時間的時間差

java相對時間的工具類,此類中有兩個暴露的方法,相對於當前時間的方法和相對於某時間的方法。 返回String,如:2小時前/3天2時13秒/昨天 具體請執行檢視 (DateTimeFormatUtil.getStrDate(date, form);為將毫

Java計算時間差(時間相減)

在Android開發或者Java學習中,經常要求兩個時間差 比如說: 現在是 :2004-03-26 13:31:40 過去是:2004-01-02 11:30:24 我現在要獲得兩個日期差,差的形式為:XX天XX小時XX分XX秒 這前後時間可能是機器生成的,也

PHP 怎麼判斷時間戳是不是在同一

假設 :  一星期開始是週一凌晨00:00 結束週日晚上00:00解法1:  取其中一個時間,算出這個時間的週一和週日,然後跟另外一個時間對比,符合條件就算。(自己的思路)<?php header('Content-Type:text/html;charset=utf-

判斷時間區間是否存在交集-Java實現

以下demo用於判斷兩個時間區間是否存在交集. 程式碼如下: ============================================================== package com.tgy.demo; import java.text.Simp

Java計算日期時間之間的天數-省事高階

有一種low的方式,就是你把兩個時間都換成秒,然後除以一天的秒數,然後向上取整,就是算的天數。但是這麼實現太low啦。jdk有高階的API,我們為啥還要自己去實現呢,問題就是我們不知道。所以,我在這寫個筆記,記錄下,jdk 1.8 是怎麼做的。 /** * 計

Mysql 根據時間戳、時間年月日分組統計

下列修飾符可以被用在format字串中: %M 月名字(January……December) %W 星期名字(Sunday……Saturday) %D 有英語字首的月份的日期(1st, 2nd, 3rd, 等等。) %Y 年, 數字, 4 位 %y 年, 數字, 2 位 %a 縮寫的星期名字(Sun……Sat

java判斷單鏈表是否相交

fast n) detail 無環 etl ++ code 數據 enter 轉載於:http://blog.csdn.net/happymatilian/article/details/47811161 思路: 鏈表分有環鏈表和無環鏈表,如果兩個鏈表存在相交