最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java根據(jù)開始時間和結(jié)束時間及周幾計算日期的示例代碼

 更新時間:2024年06月07日 16:51:45   作者:huanhuan_m1  
在Java 7中,java.time包不存在,所以我們需要使用java.util.Calendar和java.util.Date類來實(shí)現(xiàn)類似的功能,這篇文章主要介紹了Java根據(jù)開始時間和結(jié)束時間及周幾計算出日期的示例代碼,需要的朋友可以參考下

1、在Java 7中,java.time包不存在,所以我們需要使用java.util.Calendar和java.util.Date類來實(shí)現(xiàn)類似的功能。

以下是一個基于Java 7的示例代碼:

import java.util.Calendar;
import java.util.Date;
public class DateCalculator {
    public static Date calculateDate(Date startDate, Date endDate, int dayOfWeek) {
        Calendar startCal = Calendar.getInstance();
        startCal.setTime(startDate);
        Calendar endCal = Calendar.getInstance();
        endCal.setTime(endDate);
        // 確保輸入的dayOfWeek在正確的范圍內(nèi)(1-7,其中1代表周一,7代表周日)
        if (dayOfWeek < 1 || dayOfWeek > 7) {
            throw new IllegalArgumentException("Invalid dayOfWeek value. Must be between 1 and 7.");
        }
        // 將輸入的dayOfWeek轉(zhuǎn)換為Calendar的周幾(Calendar.MONDAY, Calendar.SUNDAY等)
        int targetDay = dayOfWeek + 1; // 因?yàn)镃alendar的周日是1,周一到周六依次遞增
        // 查找開始日期之后的第一個目標(biāo)周幾的日期
        while (startCal.getTime().before(endDate)) {
            if (startCal.get(Calendar.DAY_OF_WEEK) == targetDay) {
                break;
            }
            startCal.add(Calendar.DAY_OF_MONTH, 1);
        }
        return startCal.getTime();
    }
    public static void main(String[] args) throws Exception {
        long startDateTimestamp = 1377753600000L; // 開始日期的Unix時間戳,例如2013-09-01 00:00:00
        long endDateTimestamp = 1380345600000L; // 結(jié)束日期的Unix時間戳,例如2013-10-01 00:00:00
        int targetDayOfWeek = 3; // 周三(在Java中,1=Monday, 7=Sunday)
        Date startDate = new Date(startDateTimestamp);
        Date endDate = new Date(endDateTimestamp);
        Date calculatedDate = calculateDate(startDate, endDate, targetDayOfWeek);
        if (calculatedDate != null) {
            System.out.println("The next occurrence of " + targetDayOfWeek + " (Wednesday) between " 
                              + startDate + " and " + endDate + " is on: " + calculatedDate);
        } else {
            System.out.println("There is no occurrence of the specified weekday between the given dates.");
        }
    }
}

這段代碼首先將開始日期和結(jié)束日期轉(zhuǎn)換為Calendar對象,然后使用循環(huán)尋找開始日期之后的第一個指定周幾的日期。如果找到,就返回這個日期;否則,返回null。在main方法中,我們使用Unix時間戳創(chuàng)建了開始和結(jié)束日期,并調(diào)用了calculateDate函數(shù)。

2、在Java 8中,根據(jù)開始時間、結(jié)束時間和周幾來計算日期,可以使用java.time包下的類,如LocalDate、DayOfWeek等。

以下是一個示例代碼,展示了如何實(shí)現(xiàn)這一功能:

import java.time.DayOfWeek;
import java.time.LocalDate;
import java.time.temporal.TemporalAdjusters;
public class DateCalculator {
    public static LocalDate calculateDate(LocalDate startDate, LocalDate endDate, int dayOfWeek) {
        // 確保輸入的dayOfWeek在正確的范圍內(nèi)(1-7,其中1代表周一,7代表周日)
        if (dayOfWeek < 1 || dayOfWeek > 7) {
            throw new IllegalArgumentException("Invalid dayOfWeek value. Must be between 1 and 7.");
        }
        // 將輸入的dayOfWeek轉(zhuǎn)換為DayOfWeek枚舉值
        DayOfWeek targetDay = DayOfWeek.of(dayOfWeek);
        // 查找開始日期之后的第一個目標(biāo)周幾的日期
        LocalDate firstOccurrence = startDate.with(TemporalAdjusters.nextOrSame(targetDay));
        // 如果第一個出現(xiàn)的日期在結(jié)束日期之后,則返回null,表示在指定區(qū)間內(nèi)沒有找到符合條件的日期
        if (firstOccurrence.isAfter(endDate)) {
            return null;
        }
        return firstOccurrence;
    }
    public static void main(String[] args) {
        LocalDate startDate = LocalDate.of(2023, 9, 1); // 開始日期
        LocalDate endDate = LocalDate.of(2023, 9, 30); // 結(jié)束日期
        int targetDayOfWeek = 3; // 周三(在Java中,1=Monday, 7=Sunday)
        LocalDate calculatedDate = calculateDate(startDate, endDate, targetDayOfWeek);
        if (calculatedDate != null) {
            System.out.println("The next occurrence of " + targetDayOfWeek + " (Wednesday) between " 
                              + startDate + " and " + endDate + " is on: " + calculatedDate);
        } else {
            System.out.println("There is no occurrence of the specified weekday between the given dates.");
        }
    }
}

這段代碼首先定義了一個calculateDate方法,它接收開始日期、結(jié)束日期以及表示周幾的整數(shù)作為參數(shù)。然后,使用TemporalAdjusters.nextOrSame方法找到開始日期之后的第一個指定周幾的日期。如果這個日期在結(jié)束日期之后,則返回null。最后,在main方法中調(diào)用此函數(shù),并打印結(jié)果。

請注意,Java的DayOfWeek枚舉中,1代表星期一,2代表星期二,依此類推,直到7代表星期日。因此,如果要查找周日的日期,應(yīng)傳入7。

到此這篇關(guān)于Java根據(jù)開始時間和結(jié)束時間以及周幾計算出日期的文章就介紹到這了,更多相關(guān)java根據(jù)周幾計算出日期內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java?Mybatis查詢數(shù)據(jù)庫舉例詳解

    Java?Mybatis查詢數(shù)據(jù)庫舉例詳解

    這篇文章主要給大家介紹了關(guān)于Java?Mybatis查詢數(shù)據(jù)庫的相關(guān)資料,在MyBatis中可以使用遞歸查詢實(shí)現(xiàn)對數(shù)據(jù)庫中樹形結(jié)構(gòu)數(shù)據(jù)的查詢,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-10-10
  • Spring MVC通過添加自定義注解格式化數(shù)據(jù)的方法

    Spring MVC通過添加自定義注解格式化數(shù)據(jù)的方法

    這篇文章主要給大家介紹了關(guān)于Spring MVC通過添加自定義注解格式化數(shù)據(jù)的方法,文中先對springmvc 自定義注解 以及自定義注解的解析進(jìn)行了詳細(xì)的介紹,相信會對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2017-11-11
  • Spring的BeanFactoryPostProcessor接口示例代碼詳解

    Spring的BeanFactoryPostProcessor接口示例代碼詳解

    這篇文章主要介紹了Spring的BeanFactoryPostProcessor接口,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-02-02
  • Springboot 1.5.7整合Kafka-client代碼示例

    Springboot 1.5.7整合Kafka-client代碼示例

    這篇文章主要介紹了Springboot 1.5.7整合Kafka-client代碼示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-10-10
  • 解決IDEA使用maven創(chuàng)建Web項(xiàng)目,出現(xiàn)500錯誤的問題

    解決IDEA使用maven創(chuàng)建Web項(xiàng)目,出現(xiàn)500錯誤的問題

    本文主要介紹了在使用Maven創(chuàng)建項(xiàng)目并導(dǎo)入依賴寫完測試代碼后運(yùn)行出現(xiàn)500錯誤的解決步驟,這種問題的根本原因是Tomcat啟動后缺少某些支持的jar包,導(dǎo)致運(yùn)行出錯,解決方法是在項(xiàng)目結(jié)構(gòu)中找到Artifacts,點(diǎn)擊要編輯的項(xiàng)目
    2024-10-10
  • 詳解java如何實(shí)現(xiàn)帶RequestBody傳Json參數(shù)的GET請求

    詳解java如何實(shí)現(xiàn)帶RequestBody傳Json參數(shù)的GET請求

    在調(diào)試Fate平臺時,遇到了一個奇葩的接口類型,該接口為Get方式,入?yún)⑹且粋€json類型在body中傳遞,使用body中傳參的話為什么不用POST請求而使用了GET請求,下面我們就來深入研究一下
    2024-02-02
  • 一文讓你了解透徹Java中的IO模型

    一文讓你了解透徹Java中的IO模型

    本文只是說明了IO模型,讓你了解IO模型是什么,怎么區(qū)分IO模型,以及分析了Java中的三種IO模型,本文是純理論知識,看完之后會讓你對IO有更加深刻的理解,感興趣的同學(xué)可以參考一下
    2023-05-05
  • Java中如何將符號分隔的文本文件txt轉(zhuǎn)換為excel

    Java中如何將符號分隔的文本文件txt轉(zhuǎn)換為excel

    這篇文章主要介紹了Java中如何將符號分隔的文本文件txt轉(zhuǎn)換為excel,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-09-09
  • Java模擬QQ實(shí)現(xiàn)聊天互動程序

    Java模擬QQ實(shí)現(xiàn)聊天互動程序

    這篇文章主要介紹了如何利用Java語言模擬QQ實(shí)現(xiàn)一個簡易的聊天互動程序,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2022-06-06
  • java實(shí)現(xiàn)json字符串格式化處理的工具類

    java實(shí)現(xiàn)json字符串格式化處理的工具類

    這篇文章主要為大家詳細(xì)介紹了如何使用java實(shí)現(xiàn)json字符串格式化處理的工具類,文中的示例代碼簡潔易懂,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2024-01-01

最新評論

灵山县| 库车县| 安泽县| 宝鸡市| 正阳县| 德昌县| 册亨县| 卢湾区| 屏南县| 邓州市| 怀化市| 正安县| 浦北县| 隆昌县| 宝丰县| 孙吴县| 英超| 民勤县| 临城县| 曲沃县| 聂拉木县| 枣阳市| 遂昌县| 五大连池市| 施秉县| 登封市| 泉州市| 商都县| 类乌齐县| 罗田县| 淳安县| 临漳县| 新昌县| 清水县| 阜宁县| 合作市| 惠东县| 东台市| 昌吉市| 杭锦旗| 宾川县|