波多野结衣 蜜桃视频,国产在线精品露脸ponn,a v麻豆成人,AV在线免费小电影

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

本文介紹了考慮到從初始日期開始的工作計劃,我如何生成到期日?的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!

問題描述

示例

到期時間為15分鐘

日程安排

周一至周五:7:30-17:00

星期六9:00-14:00

周日10:00-13:00

如果我的初始日期(IniDate)是星期一的6:00,那么截止日期就是星期一的7:45
如果我的INDate是星期一的8:00,我的預產期是星期一的8:15,但是如果我的INDate是星期一的16:50,我的預產期是星期二的7:35,因為我離星期一有10分鐘,離第二天有5分鐘,另外,如果我的INDate是星期一的18:00,我的預產期是星期二的7:45,在Talend Open Studio中使用Java進行數據集成,這將使用實際日期。這意味著假設我的初始日期是2020年5月5日18:00,那么我的預產期將是2020年6月5日7:45,考慮到時間表,這是我的第一個問題,嘗試在中間變量部分的TMap組件中使用它。

推薦答案

將您的到期時間表示為Duration

Duration dueTime = Duration.ofMinutes(15);

將您的日程表表示為EnumMap<DayOfWeek, DailySchedule>,其中DailySchedule是您為每天的開放和關閉時間編寫的類。在類內部將時間表示為LocalTime對象。該類可能具有用于確定給定時間是在計劃間隔之前、之內還是之后的方法。

最好將您的初始時間05/05/2020 18:00表示為相關時區的ZonedDateTime(LocalDateTime可能也可以,但確實不適合此目的)。

給出你最初的日期和時間,去掉星期幾。在地圖上查一查日程表。如果時間不在計劃間隔內,請首先根據需要將其調整為今天或明天的間隔開始時間。

在您的到期日期和時間中的第一個快照是調整后的日期和時間加上到期時間。ZonedDateTime具有接受Durationplus方法。現在,如果到期日期在下一個日期或在今天的關閉時間之后,這是不正確的。在本例中,使用Duration.between計算一天可以花費多少時間(示例中的10分鐘)。從到期時間(Duration.minus())中減去此值。現在從第二天的開放時間開始。檢查真的應該在循環中進行,以考慮到每天的時間表可能比預期時間短。如果周六的日程安排為09:00-09:05,周日的日程安排為10:00-10:05,我們可能不得不從周五循環到周一,然后才能找到正確的截止日期和時間。

DurationDayOfWeekLocalTimeZonedDateTime都屬于現代Java日期和時間API java.time。位于底部的教程鏈接。

稍后編輯:代碼

我可能會這樣做:

Map<DayOfWeek, DailySchedule> weeklySchedule = new EnumMap<>(DayOfWeek.class);
DailySchedule weekdaySchedule
        = new DailySchedule(LocalTime.of(7, 30), LocalTime.of(17, 0));
for (DayOfWeek dow = DayOfWeek.MONDAY;
        dow.getValue() <= DayOfWeek.FRIDAY.getValue(); dow = dow.plus(1)) {
    weeklySchedule.put(dow, weekdaySchedule);
}
weeklySchedule.put(DayOfWeek.SATURDAY,
        new DailySchedule(LocalTime.of(9, 0), LocalTime.of(14, 0)));
weeklySchedule.put(DayOfWeek.SUNDAY,
        new DailySchedule(LocalTime.of(10, 0), LocalTime.of(13, 0)));

Duration dueTime = Duration.ofMinutes(15);

// Set initial day and time
DayOfWeek currentDay = DayOfWeek.MONDAY;
LocalTime currentTime = LocalTime.of(16, 50);
Duration remainingTimeToAdd = dueTime;

DailySchedule todaysSchedule = weeklySchedule.get(currentDay);
if (todaysSchedule.isBeforeOpen(currentTime)) {
    currentTime = todaysSchedule.getOpen();
} else if (todaysSchedule.isOnOrAfterClose(currentTime)) {
    currentDay = currentDay.plus(1);
    todaysSchedule = weeklySchedule.get(currentDay);
    currentTime = todaysSchedule.getOpen();
}
// We will break this loop explicitly when done
while (true) {
    // Can time be added today?
    LocalTime candidateDueTime = currentTime.plus(remainingTimeToAdd);
    if (todaysSchedule.isWithinSchedule(candidateDueTime)) {
        // yes, done
        currentTime = candidateDueTime;
        break;
    } else {
        // take remainder of today and continue tomorrow
        remainingTimeToAdd = remainingTimeToAdd.minus(Duration.between(currentTime, todaysSchedule.getClose()));
        currentDay = currentDay.plus(1);
        todaysSchedule = weeklySchedule.get(currentDay);
        currentTime = todaysSchedule.getOpen();
    }
}

System.out.println("Due day and time: " + currentDay + " at " + currentTime);

示例的輸出:

截止日期和時間:星期二07:35

如果到期時間足夠長,從一天關閉到第二天打開,代碼將不起作用。并且缺少各種驗證和檢查,您將需要添加它們。

鏈接

Oracle tutorial: Date Time解釋如何使用java.time。

這篇關于考慮到從初始日期開始的工作計劃,我如何生成到期日?的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,

分享到:
標簽:到期日 工作計劃 日期 生成 考慮到
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定