public class MyCalendar {
GregorianCalendar greg = new GregorianCalendar();
String[] month = {"January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"};
String[] day = {"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"};
public void printMonth(int d, int m, int y) {
GregorianCalendar greg= new GregorianCalendar(greg.get(Calendar.YEAR),
greg.get(Calendar.MONTH), 1);
System.out.println(month[greg.get(Calendar.MONTH)]);
System.out.println(greg.get(Calendar.FRIDAY));
System.out.println(greg.get(Calendar.SATURDAY));
}
我无法弄清楚为什么greg.get(Calendar ._____)给了我意想不到的值。格里高利历法返回奇怪的值?
YEAR, MONTH, DATE all give me correct values: 2015, 9, 6
FRIDAY returns 279
SATURDAY returns 3
SUNDAY returns 2015
TUESDAY returns 41
有人可以向我解释为什么我得到这些数字吗?我试图找出如何在本月的所有星期六的日期,并认为greg.get(Calendar.SATURDAY)
可能是有用的这样做。
这并不是真的假设你使用'get',例如,假设你使用'Calendar.DATE'作为日期值或'Calendar.YEAR'作为年份值。因此,使用'Calendar.DAY_OF_WEEK'将通过'Calendar.SUNDAY'返回一个可以匹配到'Calendar.MONDAY'的值。 – MadProgrammer
哦,如果您使用的是Java 8,请使用新的Time API或仅使用Joda Time – MadProgrammer