eg.输入日期2004/8/31
DateFormat dateFormat =
DateFormat.getDateInstance(DateFormat.MEDIUM);
GregorianCalendar grc=new GregorianCalendar(2004, Calendar.AUGUST,31);// 周
grc.add(GregorianCalendar.DAY,7);
System.out.println("grc="+dateFormat.format(grc.getTime())); // 月
grc.add(GregorianCalendar.MONTH,1);
System.out.println("grc="+dateFormat.format(grc.getTime()));// 季度
grc.add(GregorianCalendar.MONTH,3);
System.out.println("grc="+dateFormat.format(grc.getTime()));// 半年
grc.add(GregorianCalendar.MONTH,6);
System.out.println("grc="+dateFormat.format(grc.getTime()));// 年
grc.add(GregorianCalendar.YEAR,1);
System.out.println("grc="+dateFormat.format(grc.getTime()));
DateFormat dateFormat =
DateFormat.getDateInstance(DateFormat.MEDIUM);
GregorianCalendar grc=new GregorianCalendar(2004, Calendar.AUGUST,31);// 周
grc.add(GregorianCalendar.DAY,7);
System.out.println("grc="+dateFormat.format(grc.getTime())); // 月
grc.add(GregorianCalendar.MONTH,1);
System.out.println("grc="+dateFormat.format(grc.getTime()));// 季度
grc.add(GregorianCalendar.MONTH,3);
System.out.println("grc="+dateFormat.format(grc.getTime()));// 半年
grc.add(GregorianCalendar.MONTH,6);
System.out.println("grc="+dateFormat.format(grc.getTime()));// 年
grc.add(GregorianCalendar.YEAR,1);
System.out.println("grc="+dateFormat.format(grc.getTime()));
月 grc=2005-1-7
季度 grc=2005-4-7
半年 grc=2005-10-7
年 grc=2006-10-7
看了半天标题与运行结果,很不解,能否解释一下结果?
怎么提示 grc.add(GregorianCalendar.DAY,7);
中的DAY未定义
这是题目,并没说"所在的",应该是题目没说清楚,OK...
grc.add(GregorianCalendar.DAY,7);应该是DATE,手误,不好意思...
DateFormat dateFormat =
DateFormat.getDateInstance(DateFormat.MEDIUM);
// 2004/12/1
GregorianCalendar grc=new GregorianCalendar(2004, Calendar.DECEMBER,1);
// 得到今天星期几
int week = grc.get(Calendar.DAY_OF_WEEK);
// 所在周的起始日,起始日为星期一时8-week,星期日则7-week
grc.add(GregorianCalendar.DATE,8-week);
System.out.println("grc="+dateFormat.format(grc.getTime()));
// 所在周的终了日
grc=new GregorianCalendar(2004, Calendar.DECEMBER,1);
grc.add(GregorianCalendar.DATE,grc.getFirstDayOfWeek()-week);
其余同理可得......
DateFormat dateFormat =
DateFormat.getDateInstance(DateFormat.MEDIUM);
// 2004/12/1
GregorianCalendar grc=new GregorianCalendar(2004, Calendar.DECEMBER,1);
// 得到今天星期几
int week = grc.get(Calendar.DAY_OF_WEEK);
// 起始日为星期一时需要,起始日为星期日则不要
if (week == 1) {
week = week + 6;
} else {
week = week - 1;
}
// 所在周的起始日
grc=new GregorianCalendar(2004, Calendar.DECEMBER,1);
grc.add(GregorianCalendar.DATE,1-week);
// 所在周的终了日
grc.add(GregorianCalendar.DATE,7-week);
System.out.println("grc="+dateFormat.format(grc.getTime()));
GregorianCalendar grc=new GregorianCalendar(2004, Calendar.DECEMBER,1);String[] month = {"1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12"};
String[] day = {"31", "29", "31", "30", "31", "30", "31", "31", "30", "31", "30", "31"};int iNowMonth = grc.get(Calendar.MONTH);
if (iNowMonth == 2 && grc.isLeapYear(grc.get(Calendar.YEAR))) {
day[1] = "28";
}// 半月,假设以15为界
int iNowDay = grc.get(Calendar.DATE);
if (iNowDay > 15) {
String lastDay = day[iNowMonth -1];
} else {
String lastDay = 15;
}其余季度,半年,年(每年的起始终了日不一样吗?)同样写对应数组也可得到,也不复杂....