java 已知两个日期,遍历出两个日期之间所有的日期,重点是::包括第一个日期!!
迷茫
迷茫 2017-04-18 10:30:22
0
5
701

String timeStart = "2016-12-11";
String timeEnd = "2016-12-20";

已知两个日期,怎么循环出 [timeStart - timeEnd] 的所有日期,包括开始和结束时间。
并存入一个List<String>的集合中

迷茫
迷茫

业精于勤,荒于嬉;行成于思,毁于随。

membalas semua(5)
PHPzhong

Haha, ini isu tarikh sekali lagi, maka saya pasti mengesyorkan anda menggunakan API masa baharu Java 8, dan rentetan masa anda masih dalam format ini yyyy-MM-dd, anda boleh menukar rentetan itu kepada LocalDate terus menggunakan LocalDate.parse kaedah Sasaran

Selain itu, jika ini melibatkan satu siri koleksi masa biasa, maka anda mesti mempertimbangkan Strim Ia adalah sangat mudah dan pantas untuk menggunakan Strim untuk membina koleksi anda. Berikut ialah kod sampel:

   /**
     * 收集起始时间到结束时间之间所有的时间并以字符串集合方式返回
     * @param timeStart
     * @param timeEnd
     * @return
     */
    public static List<String> collectLocalDates(String timeStart, String timeEnd){
        return collectLocalDates(LocalDate.parse(timeStart), LocalDate.parse(timeEnd));
    }

    /**
     * 收集起始时间到结束时间之间所有的时间并以字符串集合方式返回
     * @param start
     * @param end
     * @return
     */
    public static List<String> collectLocalDates(LocalDate start, LocalDate end){
        // 用起始时间作为流的源头,按照每次加一天的方式创建一个无限流
        return Stream.iterate(start, localDate -> localDate.plusDays(1))
                     // 截断无限流,长度为起始时间和结束时间的差+1个
                     .limit(ChronoUnit.DAYS.between(start, end) + 1)
                     // 由于最后要的是字符串,所以map转换一下
                     .map(LocalDate::toString)
                     // 把流收集为List
                     .collect(Collectors.toList());
    }

Kemudian kod ujian:

        String timeStart = "2016-12-11";
        String timeEnd = "2016-12-20";

        collectLocalDates(timeStart, timeEnd).forEach(System.out::println);

Berikut ialah hasil cetakan:

Mudah digunakan~~Java8 yang sangat elegan dan mudah difahami~Haha

阿神

Anda mengira bilangan hari antara dua tarikh dan menambah 1 dalam gelung Jika tarikh yang ditambahkan adalah sama dengan tarikh kemudian, ia akan baik

洪涛
 思路就是这样:
 public static List<Integer> getYear(int startYear,int endYear) {
        List<Integer> years = new ArrayList<Integer>();
        while (startYear <= endYear) {
            years.add(startYear);
            startYear++;
        }
        return years;
    }
Ty80

SimpleDateFormat sdf = SimpleDateFormat("yyyy-MM-dd");

    try {
        Date begin = sdf.parse("2016-12-11");
        Date end = sdf.parse("2016-12-20");
        List<String> l = new ArrayList<String>();
        Calendar cal = Calendar.getInstance();
        while (begin.before(end)) {
            l.add(sdf.format(begin));
            cal.setTime(begin);
            cal.add(Calendar.DAY_OF_MONTH, 1);
            begin = cal.getTime();
        }
        for(String s:l){
            System.out.println(s);
        }
    } catch (ParseException e) {
        e.printStackTrace();
    }
伊谢尔伦

Anda memerlukan pakej lang Apache, yang mempunyai API berikut

Tarikh statik addDays(Tarikh tarikh, jumlah int) Mengembalikan objek Tarikh baharu selepas menambah jumlah hari pada objek masa tarikh
Tarikh statik addJam(Tarikh tarikh, jumlah int) Mengembalikan objek masa Tarikh baharu selepas menambah jumlah h Objek tarikh
Tarikh statik tambahMillisaat(Tarikh tarikh, jumlah int) Mengembalikan objek masa tarikh selepas menambah jumlah milisaat pada objek Tarikh baharu
Tarikh statik addMinutes(Tarikh tarikh, jumlah int) Mengembalikan objek masa tarikh menambah jumlah Baharu Objek tarikh selepas minit
Tarikh statik tambahBulan(tarikh tarikh, jumlah int) Mengembalikan objek masa tarikh Tambah jumlah Objek Tarikh baharu selepas bulan
Tarikh statik addSecond(Tarikh tarikh, jumlah int) Mengembalikan tarikh Objek Tarikh baharu selepas menambah jumlah saat pada objek masa
Tarikh statik addWeeks(Tarikh tarikh, jumlah int) Mengembalikan objek Tarikh baharu selepas menambah jumlah minggu ke objek masa tarikh
Tarikh statik addTahun(Tarikh tarikh, jumlah int) ) Mengembalikan a objek masa tarikh dan objek Tarikh baharu selepas menambah jumlah tahun

Alamat artikel

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan