1. 程式人生 > >Java獲取日期間的日期—-日期轉換為星期幾

Java獲取日期間的日期—-日期轉換為星期幾

獲取日期間的日期—-日期轉換為星期幾

目錄

在實際中經常會有這樣的應用
這裡寫圖片描述

這樣就要來獲取一段時間內的日期以及對應的星期。

獲取日期間的日期

private static List<Date> getBetweenDates(Date start, Date end) {
        List<Date> result = new ArrayList<Date>();
        Calendar tempStart = Calendar.getInstance();
        tempStart.setTime(start);
        //新增或減去指定的時間給定日曆領域,基於日曆的規則。例如,從日曆當前的時間減去5天,您就可以通過
tempStart.add(Calendar.DAY_OF_YEAR, 0); Calendar tempEnd = Calendar.getInstance(); tempEnd.setTime(end); tempEnd.add(Calendar.DAY_OF_YEAR, 1); while (tempStart.before(tempEnd)) { result.add(tempStart.getTime()); tempStart.add(Calendar.DAY_OF_YEAR, 1
); } return result; }

日期轉換為星期

public static String dateToWeek(String datetime) {
        SimpleDateFormat f = new SimpleDateFormat("yyyy-MM-dd");
        String[] weekDays = { "星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六" };
        Calendar cal = Calendar.getInstance(); // 獲得一個日曆
Date datet = null; try { datet = f.parse(datetime); cal.setTime(datet); } catch (ParseException e) { e.printStackTrace(); } int w = cal.get(Calendar.DAY_OF_WEEK) - 1; // 指示一個星期中的某天。 if (w < 0) w = 0; return weekDays[w]; }

整體功能測試程式碼

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.List;

public class DateTest {
    public static void main(String[] args) throws Exception {
        String startTime = "2017-10-01";
        String endTime = "2017-10-08";
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
        List<Date> dateList = getBetweenDates(sdf.parse(startTime), sdf.parse(endTime));
        for (int i = 0; i < dateList.size(); i++) {
            System.out.println(sdf.format(dateList.get(i)) + " " + dateToWeek(sdf.format(dateList.get(i))));
        }
    }

    /**
     * 
     * @doc 獲取日期間的日期
     * @param start
     *            開始日期
     * @param end
     *            結束日期
     * @return List集合
     * @author lzy
     * @history 2017年10月17日 上午9:55:04 Create by 【lzy】
     */
    private static List<Date> getBetweenDates(Date start, Date end) {
        List<Date> result = new ArrayList<Date>();
        Calendar tempStart = Calendar.getInstance();
        tempStart.setTime(start);
        //新增或減去指定的時間給定日曆領域,基於日曆的規則。例如,從日曆當前的時間減去5天,您就可以通過
        tempStart.add(Calendar.DAY_OF_YEAR, 0);

        Calendar tempEnd = Calendar.getInstance();
        tempEnd.setTime(end);
        tempEnd.add(Calendar.DAY_OF_YEAR, 1);
        while (tempStart.before(tempEnd)) {
            result.add(tempStart.getTime());
            tempStart.add(Calendar.DAY_OF_YEAR, 1);
        }
        return result;
    }

    /**
     * 
     * @doc 日期轉換星期幾
     * @param datetime
     *            日期 例:2017-10-17
     * @return String 例:星期二
     * @author lzy
     * @history 2017年10月17日 上午9:55:30 Create by 【lzy】
     */
    public static String dateToWeek(String datetime) {
        SimpleDateFormat f = new SimpleDateFormat("yyyy-MM-dd");
        String[] weekDays = { "星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六" };
        Calendar cal = Calendar.getInstance(); // 獲得一個日曆
        Date datet = null;
        try {
            datet = f.parse(datetime);
            cal.setTime(datet);
        } catch (ParseException e) {
            e.printStackTrace();
        }
        int w = cal.get(Calendar.DAY_OF_WEEK) - 1; // 指示一個星期中的某天。
        if (w < 0)
            w = 0;
        return weekDays[w];
    }
}

執行結果
這裡寫圖片描述

一些方法說明

    Calendar tempStart = Calendar.getInstance();
    tempStart.setTime(start);
    //新增或減去指定的時間給定日曆領域,基於日曆的規則。例如,從日曆當前的時間減去5天,您就可以通過
    tempStart.add(Calendar.DAY_OF_YEAR, 0);

Calendar類是Java的一個時間操作類,setTime方法不用我多說,給定一個Date值設定時間,add這個方法可以對時間上進行操作,例如:

tempStart.add(Calendar.DAY_OF_YEAR, 5);

API上的解釋是:新增或減去指定的時間給定日曆領域,基於日曆的規則。如上程式碼就是對在當前tempStart物件的時間點上加上5天。

tempStart.before(tempEnd)

before這個方法,返回此日曆是否表示由指定物件表示的時間之前的時間。相當於:CompareTo(時)<0。

相關推薦

Java獲取期間日期—-日期轉換星期

獲取日期間的日期—-日期轉換為星期幾 目錄 在實際中經常會有這樣的應用 這樣就要來獲取一段時間內的日期以及對應的星期。 獲取日期間的日期 private static List<Date> getBetweenDate

SQL Server 獲取兩個期間日期

() serve server cts where sele sel lar obj declare @start datetime declare @end datetime set @start = ‘2018-01-25‘ set @end = ‘201

localtime()函式:獲取當前時間和日期轉換本地時間

核心程式碼能一直獲取一個當前時間的表示, 通過檢視 jifies 的值. 常常地, 這個值只代表從最後一次啟動以來的時間, 這個事實對驅動來說無關, 因為它的生命週期受限於系統的 uptime. 如所示, 驅動可以使用 jiffies 的當前值來計算事件之間的時間間隔(例如, 在輸入驅動中從單擊中

json日期格式轉換正常格式

ets 日期 gets urn second nbsp int pan bsp function jsonDateFormat(jsonDate) { try { var date = new Date(parseInt(jsonDate.repl

C# 秒數轉日期_由秒數得到日期小時_當前日期時間,轉換

///<summary> ///由秒數得到日期幾天幾小時。。。 ///</summary ///<param name="t">秒數</param> ///<param name="type">0:轉換後帶秒,1:轉換後不帶秒</param

html 頁面/jsp 頁面 日期格式的轉換,將日期格式轉換字串型別

jsp 頁面 引入jstl標籤庫中fmt <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %> 使用標籤進行日期Date型別到String 字串的轉化 <fmt:formatDate valu

js日期計算及快速獲取周、月、季度起止,獲取指定日期週數以及星期的小例子

轉載地址:https://www.cnblogs.com/laneyfu/p/5028916.html //   通過週數和星期計算日期   //2017年1月1日是星期日,算第一週,1月2日週一算是第二週 function dateFromWeek(year,

java獲取字串裡的日期資訊,並把獲取日期資訊轉成Date

字串:String  aa="物品日報表 2018年9月29日"; Date  newdate=stringZhuanDate(aa); //字串裡的時間轉換成date public Date stringZhuanDate(String biaoti){

【原創】SqlServer、利用遞迴查詢、將日期範圍轉換日期

在做專案任務時,需要將一個日期範圍轉換為日期表。 例如:日期範圍(2017年01月21日~2017年02月20日)、轉換成一日為單位的日期表,如下。 2017-01-21 2017-01-22

JS中將日期字串轉換日期型過程中出現的問題

專案中需要在頁面上選擇一個日期(格式為:2015-08-20),然後通過JS實現,根據前面選中的日期,獲得該日期的前一天,相關JS程式碼如下: /** * 引數:today 日期型 * 返回:字串YYYYMMDD * 返回today的上一天日期 * */ funct

java 使用jaxb 把xml 直接轉換ben

有一個 alt new ima 告訴 repo artifact style log 首先有一個xml 文件。 使用 trang-20091111.jar 把xml 文件轉化為 .xsd 文件(jar 下載地址 : http://mvnrepository.com/art

[轉]Java中怎樣把數組轉換ArrayList

com supported array 文檔 java 靜態 拷貝 light size 方法匯總: Element[] array = {new Element(1),new Element(2),new Element(3)}; ArrayList<E

Java將一個基本資料型別轉換String的方法及效率比較

把一個基本資料型別轉為字串型別,有三種方法。 假設a是integer型別的資料 方法1:a.toString(); 方法2:String.valueOf(a); 方法3:a+""; 效率比較: 方法1效率最快、其次到方法2、最後才是方法3; 原因: 1.a

java十六進位制轉換字串(解決中文亂碼問題)

  // 轉化十六進位制編碼為字串 public static String toStringHex2(String s) { byte[] baKeyword = new byte[s.length() / 2]; for (int

Java實現24位真彩轉換8位灰度圖片

         Windows下的點陣圖檔案即我們通常所熟悉的BMP圖片,其儲存結構的格式可以在WINGDI.h檔案中找到定義。BMP檔案大體上分為四個部分: 1.      點陣圖檔案頭(BITMAPFILEHEADER) 2.      點陣圖資訊頭(BITMAPIN

Java將檔案中的內容轉換sql語句(和併發定時讀取檔案)

資料檔案內容data.txt {USER_TYPE=1,CREATE_USER=ZHANG,UPDATE_USER=li,OPER_NUM=D001,SRC=2,UPDATE_TIME=2018-11-11 18:08:08.0,TABLE_NUM=T17,OPTIONS=FIND,

C#之將從textbox獲取的值從string轉換int值

測試程式碼:方法一try            {                int count1 = int.Parse(textBox2.Text); //string型別轉換int型別            }            catch (Exception

java利用工具fastjson將陣列轉換JsonArray

一:下載fastjson-1.2.38.jar 二:java程式碼 @Test public void test4() { int[] my = new int[2]; my[0] = 6; my[1] = 8; try { JSONArray jsonObj = (

列舉操作(從列舉中獲取Description,根據Description獲取列舉,將列舉轉換ArrayList)工具

using System; using System.Collections; using System.Collections.Generic; using System.ComponentModel; using System.Reflection; namespac

JAVA下整形和String陣列轉換列表

資料整理自網上,若有錯誤請及時通知博主。 JAVA下陣列轉換為列表 java的陣列一般可以分為int陣列和String陣列。先看下面的例子: public static void main(String[] args) {