对于学校作业,我需要能够“计算”某些日期。
我有一些联系时刻需要自动分配到某个特定日期(一周中的某一天)并打印...
让我们说从1月1日开始,我需要将每个星期一分配到一个联系时刻,除非这个星期一是假期。我在数据库中有一个有效日期列表,以日期格式进行检查。
到目前为止我所拥有的:
那天我想在某一天开始然后加上7天的
我会设定日期:
set(int year, int month, int date)
然后每周添加7个星期:
cal.add(Calendar.DAY_OF_MONTH, 7);
然后我会检查这个日期是否等于我的mysql表中的日期。
compareDatesByCalendar(Date javaDate, Date mysqlDate) {
Calendar javaCal = Calendar.getInstance();
Calendar mysqlCal = Calendar.getInstance();
javaCal.setTime(javaDate);
mysqlCal.setTime(mysqlDate);
if (javaCal.equals(mysqlCal)) {
……..
}
else{
….}
如果日期不在列表中,我会再添加7个并再次检查....
所以在我有所有时刻之前,将它们添加到数组中进行打印
这是采取这种方式还是更好的方式的正确方法?
假设我们想在每个星期四预约,有没有办法看到从起点开始的第一天(例如从1月1日开始)。?
如果有最多几周(可用时刻)怎么办?我怎么能阻止这个?
任何建议都会更有帮助!全部
答案 0 :(得分:1)
答案 1 :(得分:0)
我最近开发了Lamma,旨在解决此用例。
HolidayRule ukHoliday2015 = simpleHolidayRule(
date(2015, 1, 1), date(2015, 4, 3), date(2015, 4, 6),
date(2015, 5, 4), date(2015, 5, 25), date(2015, 8, 31),
date(2015, 12, 25), date(2015, 12, 28)
);
List<Date> dates = Dates.from(2015, 12, 23).to(2015, 12, 30).byDays(2).except(weekends()).except(ukHoliday2015).build();
for (Date date: dates) {
System.out.println(date);
}
输出是:
Date(2015,12,23)
Date(2015,12,29)