2 回答
TA贡献2003条经验 获得超2个赞
定义一个类
没有与 Java 捆绑在一起的类来表示一周中的一天和一天中的时间。捆绑课程需要一个日期。
您将需要定义自己的此类,可能命名为DayOfWeekWithTime. 该类将有两个成员字段,一个DayOfWeek对象和一个LocalTime对象。在 Stack Overflow 上搜索这些课程的许多现有帖子。
public class DayOfWeekWithTime {
// Member fields
DayOfWeek dayOfWeek ;
LocalTime localTime ;
// Constructor
public DayOfWeekWithTime ( DayOfWeek dayOfWeek , LocalTime localTime ) {
Objects.requireNonNull( dayOfWeek ) ;
Objects.requireNonNull( localTime ) ;
this.dayOfWeek = dayOfWeek ;
this.localTime = localTime ;
}
}
枚举遵循 ISO 8601 标准,因此DayOfWeek一周定义为周一至周日。这符合您想要的排序顺序。DayOfWeekWithTime因此,您可以按该成员字段对对象集合进行排序。见Collections.sort( list , comparator )。在 Stack Overflow 上搜索有关按特定字段对对象进行排序主题的许多现有帖子。
DayOfWeekWithTime要从问题中看到的字符串输入实例化您的对象,请拆分空格字符。见String::split。在 Stack Overflow 上搜索关于拆分字符串主题的许多现有帖子。
然后编写一个例程来查找DayOfWeek每个 3 字母输入值的枚举。你可以写一个if-else-if系列。或者你可以写一个Map< String , DayOfWeek >.
对于一天中的时间,您可以使用LocalTime.parse方法解析。如果使用 24 小时制并在单个数字上填充零,则无需定义格式模式,因为java.time类在解析/生成文本时默认使用标准 ISO 8601 格式。在 Stack Overflow 上搜索有关使用java.time类进行解析的许多现有帖子。
不要使用现在遗留下来的SimpleDateFormat相关可怕的日期时间类,例如Date或Calendar。仅使用java.time类进行日期时间工作。
TA贡献1775条经验 获得超8个赞
日历有方法
setFirstDayOfWeek(ind day)
你可以使用它:calendar.setFirstDayOfWeek(Calendar.Monday)
添加回答
举报
