import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date;public class Test { public static void main(final String[] args) throws Exception { final Calendar calendar = Calendar.getInstance(); final SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss"); final Date start = format.parse("2013-03-04 00:00:00"); final Date end = format.parse("2013-07-15 00:00:00"); Date time = start; calendar.setTime(time); while (time.before(end)) { final int day = calendar.get(Calendar.DAY_OF_WEEK); if (day == 2 || day == 6) { System.out.println(calendar.getTime()); } calendar.add(Calendar.DAY_OF_MONTH, 1); time = calendar.getTime(); } }}
1、思路:通过开始日期加1进行循环,日期为本周第2天(周一)、第6天(周五)则输出。 2、注意当前默认使用的是中国本地时间,可对时间的本地化做一些优化处理。 3、下面是代码,有注释,请参考。package com.zl.csdn;import java.util.Calendar; import java.util.GregorianCalendar;public class DayPrint { /** * @param args */ public void printDayMon(Calendar begin,Calendar end) { if(begin.compareTo(end) > 0 ) System.out.println("The begin date must be less then end date!"); else { while(begin.compareTo(end) <= 0) { if(begin.get(Calendar.DAY_OF_WEEK) == 2 ) //如果当前日期是本周的第二天,级周一则输出 System.out.println(begin.get(Calendar.YEAR) + "年" + (begin.get(Calendar.MONTH) + 1) + "月" + begin.get(Calendar.DAY_OF_MONTH) + "日"); begin.add(Calendar.DAY_OF_MONTH,1); //开始日期天数加1 } } }
public void printDayFri(Calendar begin,Calendar end) { if(begin.compareTo(end) > 0 ) System.out.println("The begin date must be less then end date!"); else { while(begin.compareTo(end) <= 0) { if(begin.get(Calendar.DAY_OF_WEEK) == 6 ) System.out.println(begin.get(Calendar.YEAR) + "年" + (begin.get(Calendar.MONTH) + 1) + "月" + begin.get(Calendar.DAY_OF_MONTH) + "日"); begin.add(Calendar.DAY_OF_MONTH,1); } }
}
public static void main(String[] args) { // TODO Auto-generated method stub DayPrint test = new DayPrint();
//打印输出2013-3-4~2013-7-15日每一个周一对应的日期 Calendar beginMon = new GregorianCalendar(2013,2,4); //注意构造函数中的month字段0表示1月 Calendar endMon = new GregorianCalendar(2013,6,15); System.out.println("-------------------The Day that is Monday------------"); test.printDayMon(beginMon,endMon); System.out.println("-----------------------------------------------------"); System.out.println();
//打印输出2013-3-4~2013-7-15日每一个周五对应的日期 Calendar beginFri = new GregorianCalendar(2013,2,4); Calendar endFri = new GregorianCalendar(2013,6,15); System.out.println("-------------------The Day that is Friday------------"); test.printDayFri(beginFri,endFri); System.out.println("-----------------------------------------------------");
import java.util.Calendar;
import java.util.Date;public class Test { public static void main(final String[] args) throws Exception {
final Calendar calendar = Calendar.getInstance();
final SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
final Date start = format.parse("2013-03-04 00:00:00");
final Date end = format.parse("2013-07-15 00:00:00"); Date time = start;
calendar.setTime(time);
while (time.before(end)) {
final int day = calendar.get(Calendar.DAY_OF_WEEK);
if (day == 2 || day == 6) {
System.out.println(calendar.getTime());
}
calendar.add(Calendar.DAY_OF_MONTH, 1);
time = calendar.getTime();
}
}}
Calendar calendar= Calendar.getInstance(Locale.CHINA);
2、注意当前默认使用的是中国本地时间,可对时间的本地化做一些优化处理。
3、下面是代码,有注释,请参考。package com.zl.csdn;import java.util.Calendar;
import java.util.GregorianCalendar;public class DayPrint { /**
* @param args
*/
public void printDayMon(Calendar begin,Calendar end) {
if(begin.compareTo(end) > 0 )
System.out.println("The begin date must be less then end date!");
else {
while(begin.compareTo(end) <= 0) {
if(begin.get(Calendar.DAY_OF_WEEK) == 2 ) //如果当前日期是本周的第二天,级周一则输出
System.out.println(begin.get(Calendar.YEAR) + "年" + (begin.get(Calendar.MONTH) + 1) + "月" + begin.get(Calendar.DAY_OF_MONTH) + "日");
begin.add(Calendar.DAY_OF_MONTH,1); //开始日期天数加1
}
}
}
public void printDayFri(Calendar begin,Calendar end) {
if(begin.compareTo(end) > 0 )
System.out.println("The begin date must be less then end date!");
else {
while(begin.compareTo(end) <= 0) {
if(begin.get(Calendar.DAY_OF_WEEK) == 6 )
System.out.println(begin.get(Calendar.YEAR) + "年" + (begin.get(Calendar.MONTH) + 1) + "月" + begin.get(Calendar.DAY_OF_MONTH) + "日");
begin.add(Calendar.DAY_OF_MONTH,1);
}
}
}
public static void main(String[] args) {
// TODO Auto-generated method stub
DayPrint test = new DayPrint();
//打印输出2013-3-4~2013-7-15日每一个周一对应的日期
Calendar beginMon = new GregorianCalendar(2013,2,4); //注意构造函数中的month字段0表示1月
Calendar endMon = new GregorianCalendar(2013,6,15);
System.out.println("-------------------The Day that is Monday------------");
test.printDayMon(beginMon,endMon);
System.out.println("-----------------------------------------------------");
System.out.println();
//打印输出2013-3-4~2013-7-15日每一个周五对应的日期
Calendar beginFri = new GregorianCalendar(2013,2,4);
Calendar endFri = new GregorianCalendar(2013,6,15);
System.out.println("-------------------The Day that is Friday------------");
test.printDayFri(beginFri,endFri);
System.out.println("-----------------------------------------------------");
}}
建议楼主还是自己多多练习