在java中为每个日期存储一个int

xdyibdwo  于 2021-07-13  发布在  Java
关注(0)|答案(2)|浏览(423)

日历类中的每个日期是否都要存储一个整数?例如,6月5日可以存储数字5。
我想这个功能,因为我写了一个房间预订系统,每个预订要求有不同的身份证号码。所以我想要一个日历对象来存储每天的id号。

z9smfwbn

z9smfwbn1#

我希望有更好的方法来组织你们的实体关系。如果您在一天内有多个预订请求,那么将所有这些预订ID添加到日期是没有意义的。更确切地说,在每个预订中,都有一个名为 requestedDate 并按日期存储请求的。当您需要在一个日期发出所有请求时,可以使用此字段对其进行筛选。
根据你目前的需要,你可以分班上课 GregorianCalendar 类并添加此变量 bookingId 有能手和二传手。

import java.util.GregorianCalendar;

public class BookingCalendar extends GregorianCalendar {

    private Integer bookingId;

    public Integer getBookingId() {
        return bookingId;
    }

    public void setBookingId(Integer bookingId) {
        this.bookingId = bookingId;
    }
}

要对此进行测试:

public class CheckCal {
    public static void main(String[] args) {
        BookingCalendar cal = new BookingCalendar();
        System.out.println(cal.getTime()); //Mon Mar 28 06:30:24 IST 2016
        cal.setBookingId(25);
        System.out.println(cal.getBookingId()); //25
    }
}
w6lpcovy

w6lpcovy2#

没有办法将额外的信息存储在数据库中 java.util.Calendar 对象,除非实现自己的子类(例如) GregorianCalendar .
如果我们可以从您的示例中推断出您要存储的数字是“一个月中的某一天”,那么您不需要存储它。

int dayOfTheMonth = cal.get(Calendar.DAY_OF_THE_MONTH);

否则,应该使用 Map . 最好使用不可变的日期类型作为键;例如

Map<LocalDate, Integer> dateNumbers = new TreeMap<>();

(如果您使用 Calendar 作为键类型和一些称为 set 操作更改键时,贴图的不变量将无效。)
或者,如果您的“日历”相当于一个日期数组,那么您可以使它成为一个对象数组,其中包含一个日期字段和一个数字字段。例如:

public class Booking {
      private Room room;
      private LocalDate date;
      private int id;
      // constructor, getters
  }

  public class Bookings {
      // data structures representing all bookings, possibly
      // with maps for fast lookups.

      // methods for looking up bookings by id, date, room
      // methods for adding / removing / updating bookings
      // methods finding free rooms for a given day or day range
  }

相关问题