Tôi có thể sử dụng lịch Maya bằng Java như thế nào?Lịch của người Maya ở Java
Trả lời
LOL, thử đặt ngày có thể chọn cuối cùng thành ngày 21 tháng 12 năm 2012? nhưng không thực sự kết thúc ở đó, nó chỉ bắt đầu lại để bạn muốn bắt đầu đếm lại sau ngày 21 tháng 12 năm 2012?
Cách tốt nhất để sử dụng các lịch/niên đại khác trong Java là thư viện xuất sắc Joda-Time. Nó không có niên đại của người Maya, nhưng bạn có thể tự mình thực hiện các quy tắc của người Maya và cắm nó vào. Không nên quá nguy hiểm.
Bạn không chắc liệu nó có dễ đến mức không, ngay cả Jon Skeet cũng đã punted: http://msmvps.com/blogs/jon_skeet/archive/2009/11/06/noda-time-is-born.aspx#1738663 – Thilo
Anh ấy viết thẳng cổng và muốn tập trung vào điều đó thay vì các tính năng bổ sung như thời gian mới. Tôi nghĩ đó là đủ công bằng, mà không cho biết sẽ khó khăn như thế nào để viết một niên đại mới. – GaryF
Sử dụng JodaTime. Rất tiếc, xin lỗi, chỉ là phản xạ khi đọc câu hỏi về java.util.Calendar ;-)
Có một số trang web có thể hữu ích đối với bạn trên trang web có số Java applets.
Lịch của bạn có hết giờ không? :-)
+1 Để giải trí –
Nếu bạn đang thực sự tìm kiếm giải pháp, Maya Calendar implementation này có vẻ khá tốt.
Nó thực hiện một maya Tzolk'in calender sử dụng Java GregorianCalendar
. Ngày có thể được lấy cả hai trong định dạng Gregorian hoặc Tzolk'in.
Dưới đây là những phần cốt lõi:
[...]
/** parses Date specified in Long Count format, e.g. "12.19.19.17.19" */
public void parseLongCountDate (String longCountDate) {
String [] components = longCountDate.split("\\.");
try {
if (components.length != 5)
throw new Exception("Expecting 5 numbers separated by dots");
int baktuns = Integer.valueOf(components[0]);
int katuns = Integer.valueOf(components[1]);
int tuns = Integer.valueOf(components[2]);
int winals = Integer.valueOf(components[3]);
int kins = Integer.valueOf(components[4]);
set (baktuns, katuns, tuns, winals, kins);
} catch (Throwable e) {
throw new IllegalArgumentException("Invalid long count date format: "
+ e.getMessage());
}
}
/** Set date to given long count date */
public void set (int baktuns, int katuns, int tuns, int uinals, int kins) {
assert MayaTimeUnit.Kin.toDays (1) == 1;
daysSinceGreatCycle =
MayaTimeUnit.Baktun.toDays (baktuns) +
MayaTimeUnit.Katun.toDays(katuns) +
MayaTimeUnit.Tun.toDays(tuns) +
MayaTimeUnit.Winal.toDays(uinals) +
kins;
}
[...]
/** @return day name number in Tzolk'in calendar, e.g. it returns 0 (Ajaw) for the day "4 Ajaw" */
public Tzolkin toTzolkinDayName() {
// The Tzolk'in date is counted forward from 4 Ajaw.
return Tzolkin.DAYS[(daysSinceGreatCycle + 19) % 20]; // relative to Ajaw
}
/** @return day number in Tzolk'in calendar, e.g. it returns 4 for the day "4 Ajaw" */
public int toTzolkinDayNumber() {
// The Tzolk'in date is counted forward from 4 Ajaw.
return (daysSinceGreatCycle + 4) % 13;
}
[...]
/** @return day name number in Haab calendar, e.g. it returns Yaxkin (5) for the day "14 Yaxk'in" */
public Haab toHaabDayName() {
int d = (daysSinceGreatCycle + 349) % 365;
return Haab.DAYS[d/20];
}
/** @return day number in Haab calendar, e.g. it returns 14 for the day "14 Yaxk'in" */
public int toHaabDayNumber() {
int d = (daysSinceGreatCycle + 349) % 365;
return d % 20 - 1;
}
[...]
/** @return Gregorian calendar representation of currently set date */
public String toGregorianString() {
Calendar c = toGregorianDate();
return format.format(c.getTime());
}
/** @return Converts currently defined date into Gregorian calendar */
public Calendar toGregorianDate() {
Calendar c = (Calendar)greatCycleStartDate.clone();
c.add(Calendar.DAY_OF_YEAR, daysSinceGreatCycle);
return c;
}
[...]
Trong mọi trường hợp: Cool câu hỏi :-)
- 1. Tạo một dịch vụ lịch ở đầu Lịch Google
- 2. câu hỏi của người mới bắt đầu về lập lịch java (Quartz)
- 3. Thư viện Java cho Lịch Hijri (Umm Al-Qura) Lịch
- 4. Người thực thi theo lịch trình tại Scala
- 5. Lịch sử hiệu suất Java
- 6. Java: Tôi nên đặt mã logic của người nghe ẩn danh ở đâu?
- 7. Giao diện người dùng lịch trong android
- 8. SVN: Lịch sử thanh toán người dùng?
- 9. Điều hướng đến lệnh sớm nhất/mới nhất trong lịch sử khi bạn đang ở giữa lịch sử của mình
- 10. Lập lịch tác vụ trong Spring/Java
- 11. Lưu trữ hoạt động của người dùng ở Django
- 12. `getchar()` lưu trữ đầu vào của người dùng ở đâu?
- 13. Điều khiển ngày tháng và lịch Java
- 14. Bao nhiêu ngày trong Java với Lịch
- 15. Làm thế nào để lên lịch các luồng Java
- 16. Chuyển đổi mô hình maya hoạt hình thành JSON để sử dụng với ba js
- 17. bản ghi hoạt động của người ký mã đang ở đâu, hoặc ở đâu?
- 18. Lịch sử của dấu + ở phía trước của một hashref làm biến đổi từ một khối mã là gì?
- 19. Cách thanh lịch nhất để xử lý tên miền tùy chỉnh của người dùng là gì?
- 20. Cách nhận id người dùng hiện đang đăng nhập của người dùng ở Django?
- 21. thêm hơn 30 ngày với phương thức add() của Lịch trong Java
- 22. Enum của Java ... Chúng được tạo ra ở đâu?
- 23. Lấy Người dùng Nhập để tạo Người dùng ở Django
- 24. Cách xem Lịch sử đăng ký của một người dùng cụ thể trong TFS?
- 25. Lấy lịch hẹn của người tổ chức bằng cách sử dụng EWS cho Exchange 2010
- 26. SVN: Di chuyển kho lưu trữ đến nhánh của người khác (với lịch sử)
- 27. Lập lịch biểu tác vụ bằng django-celery dựa trên đầu vào của người dùng
- 28. Truy cập trạng thái lịch sử của trang trước khi người dùng nhấp vào 'quay lại'
- 29. Bất kỳ API IMDB nào để nhận lịch sử xếp hạng của người dùng?
- 30. Java ScriptEngine: sử dụng giá trị ở phía Java?
Đây có phải là về vấn đề Y2012? – Thilo
LOL là một câu hỏi hay nhất –
Thành thật mà nói là câu hỏi hay nhất từ trước tới nay. – ponzao