gpt4 book ai didi

java - Joda Time - 给定时间段内的时间段?

转载 作者:行者123 更新时间:2023-11-30 11:35:03 25 4
gpt4 key购买 nike

我的用例 - 我是一名医生。在某一天,我有几个小时有空,而有一些小时是联合国可用的。我想创建一个对象 Period myWorkDay。当某人确定上午 8 点到 9 点的约会(即 Period patient1Appointment)时,该时间将从 myWorkDay 中“删除”。当新患者访问 myWorkDay 时,他只能看到 myWorkDay - patient1Appointment。如果患者 1 释放他的时间段,那么新患者会看到完整的 myWorkDay。

是否可以使用 JodaTime 来做到这一点?

有一个不必要的额外要求。但是,如果您知道如何做到这一点,请告诉我。

Extra - 在 myWorkDay 中定义特定 Period 的任务并执行它们。例如。 8-9时段(8-8:30钻牙,8:30-8:45磨牙,8:45-9:00做一些文书工作,然后在9点迎接另一个病人)

import org.joda.time.*;

public class PeriodManager {


public static void main(String[]args){

DateTime startTime = new DateTime(2013, 7, 1, 9, 0);//(int year, int monthOfYear, int dayOfMonth, int hourOfDay, int minuteOfHour)
DateTime endTime = new DateTime(2013, 7, 1, 17, 0);// 9 to 5 (or 17) job :)

Period fullDay = new Period(startTime, endTime);
System.out.println("full day - " + fullDay);

startTime = new DateTime(2013, 7, 1, 9, 0);
endTime = new DateTime(2013, 7, 1, 10, 0);
Period patient1Appointment = new Period(startTime, endTime);//9-10

fullDay.minus(patient1Appointment);
System.out.println("full day - pat 1 " + fullDay);

startTime = new DateTime(2013, 7, 1, 9, 0);
endTime = new DateTime(2013, 7, 1, 10, 0);
Period patient1CancelAppointment = new Period(startTime, endTime);

fullDay.plus(patient1CancelAppointment);
System.out.println("full day + pat 1 " + fullDay);

startTime = new DateTime(2013, 7, 1, 9, 0);
endTime = new DateTime(2013, 7, 1, 10, 0);
Period patient2Appointment = new Period(startTime, endTime);

fullDay.minus(patient2Appointment);
System.out.println("full day - pat 2 " + fullDay);

}

}

最佳答案

JODA 代表日期和时间,所以在回答您的问题时,是的,可以使用 JODA 在某种程度上对其进行建模。但是您需要使用 JODA 之外的其他工具对问题域进行建模。

您实际上是在做类似 Outlook 日历的事情。日历已经在 J​​ava 中使用,因此您可以将其称为日记。一个简单的日记就会知道你的工作日是哪几天,你的工作时间是多少(开始时间,结束时间)。

您可能希望将您的日记表示为日/周/月 block 。对于每一天,您现在可以确定它是否是工作日,以及工作时间。

然后您将要代表一个约会。最简单的约会有日期、开始时间和结束时间、与会者。您可以添加其他内容,例如描述、状态(忙碌等)。

当有人创建新约会时,您可以检查它的开始/结束时间是否与现有约会冲突。

因此,从这个领域驱动设计开始,我们可以说您可能拥有以下数据/实体。

  1. 医生(可能是员工)
  2. 医生拥有一本或多本日记本
  3. 日记有工作日、工作时间;拥有约会
  4. 约会有开始时间、结束时间、日期、参加者

这将为您提供有关数据和对象模型以及主数据关系的线索。没有理由不能使用标准类或 JODA 来实现它。

关于java - Joda Time - 给定时间段内的时间段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15319877/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com