openplanning

Hướng dẫn và ví dụ Java MinguoDate

  1. MinguoDate
  2. MinguoDate Examples
  3. MinguoDate Methods

1. MinguoDate

Lớp MinguoDate đại diện cho ngày tháng trong hệ thống lịch Trung Hoa Dân Quốc (Republic of China - ROC) hay còn gọi là lịch Minguo. Lịch này được sử dụng từ đầu năm 1912, năm thành lập nhà nước Trung Hoa Dân Quốc. Ngày 1 tháng 1 năm 1912 trong hệ thống lịch ISO tương đương với ngày 1 tháng 1 năm 1 trong lịch Minguo. Thuật ngữ "Minguo" đơn giản có nghĩa là "nước cộng hoà" (tiếng Trung phồn thể: 民國; tiếng Trung giản thể: 民国).
Minguo tuân theo truyền thống của người Trung Quốc là sử dụng tên kỷ nguyên (era) và năm cai trị, giống như các triều đại Trung Quốc trước đó. Tuy nhiên tháng và ngày được đánh số theo lịch Gregorian (ISO). Hệ thống lịch này chỉ có 2 kỷ nguyên là BEFORE_ROC (Before Republic of China) và ROC (Republic of China) đại diện cho thời kỳ trước năm 1912 và sau năm 1912. Thực tế là chế độ phong kiến Trung Quốc kết thúc ngày 12 tháng 2 năm 1912 khi Yaozhi (Phổ Nghi) vị hoàng đế cuối cùng của Trung Quốc bị buộc phải thoái vị.
Lịch ROC đã được sử dụng rộng rãi tại Trung Hoa Dân Quốc từ năm 1912, bao gồm cả trong các tài liệu chính thức ban đầu. Lịch Trung Hoa Dân Quốc là lịch chính thức được sử dụng ở Đài Loan từ năm 1945, và cũng được các cộng đồng Hoa kiều và Đài Loan áp dụng. Các nghiên cứu địa chí và lịch sử được xuất bản ở Trung Quốc đại lục trong khoảng thời gian từ năm 1912 đến năm 1949 cũng sử dụng lịch Trung Hoa Dân Quốc.

2. MinguoDate Examples

Chuyển đổi một ngày tháng trong lịch ISO thành ngày tháng trong lịch Minguo và ngược lại:
MinguoDate_from_ex1.java
LocalDate localDate = LocalDate.of(2000, 2, 15);
// Convert Minguo Date to ISO Date
MinguoDate minguoDate = MinguoDate.from(localDate);

System.out.printf("ISO Date: %s, Minguo Date: %s%n%n", localDate, minguoDate);  

minguoDate = MinguoDate.of(100, 1, 1);
// Convert ISO Date to Minguo Date
localDate = LocalDate.from(minguoDate);
System.out.printf("Minguo Date: %s, ISO Date: %s%n", minguoDate, localDate);
Output:
ISO Date: 2000-02-15, Minguo Date: Minguo ROC 89-02-15

Minguo Date: Minguo ROC 100-01-01, ISO Date: 2011-01-01
Ví dụ: Xem thông tin kỷ nguyên (era) của một đối tượng MinguoDate.
MinguoDate_ex2.java
MinguoDate minguoDate = MinguoDate.of(50, 3, 15);
MinguoEra era =    minguoDate.getEra();

System.out.printf("Minguo Date: %s, ISO Date: %s%n", minguoDate, LocalDate.from(minguoDate));
System.out.println(" > Era: " + era.name() +", value: " + era.getValue());


minguoDate = MinguoDate.of(-10, 3, 15);  
 era =    minguoDate.getEra();
System.out.printf("%nMinguo Date: %s, ISO Date: %s%n", minguoDate, LocalDate.from(minguoDate));
System.out.println(" > Era: " + era.name() +", value: " + era.getValue());
Output:
Minguo Date: Minguo ROC 50-03-15, ISO Date: 1961-03-15
 > Era: ROC, value: 1

Minguo Date: Minguo BEFORE_ROC 11-03-15, ISO Date: 1901-03-15
 > Era: BEFORE_ROC, value: 0
  • Hướng dẫn và ví dụ Java MinguoEra

3. MinguoDate Methods

Factory methods:
public static MinguoDate now()  

public static MinguoDate now(ZoneId zone)  

public static MinguoDate now(Clock clock)  

public static MinguoDate of(int prolepticYear, int month, int dayOfMonth)

public static MinguoDate from(TemporalAccessor temporal)
Các phương thức khác:
public MinguoChronology getChronology()   
public MinguoEra getEra()   

public int lengthOfMonth()
public ValueRange range(TemporalField field)
public long getLong(TemporalField field)  
public MinguoDate with(TemporalField field, long newValue)
public MinguoDate with(TemporalAdjuster adjuster)  
public MinguoDate plus(TemporalAmount amount)  
public MinguoDate minus(TemporalAmount amount)  
public MinguoDate plus(long amountToAdd, TemporalUnit unit)  
public MinguoDate minus(long amountToAdd, TemporalUnit unit)
public final ChronoLocalDateTime<MinguoDate> atTime(LocalTime localTime)  
public long toEpochDay()  
public ChronoPeriod until(ChronoLocalDate endDate)  
public long until(Temporal endExclusive, TemporalUnit unit)
Về cơ bản các phương thức của MinguoDate đều tương tự như các phương thức của LocalDate. Bạn có thể xem bài viết về lớp LocalDate để có được nhiều hơn các ví dụ: