编写Java程序,要求在当前日期的前100个星期中,打印号数和星期数都与今天相同的日期。

2024-11-26 06:47:00
推荐回答(2个)
回答1:

import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

public class Test {
/**
* @param args
*/
public static void main(String[] args) {
SimpleDateFormat tdateformat=new SimpleDateFormat("yyyy年 MM月 dd日 HH:mm:ss E");
String todate=tdateformat.format(new Date());
System.out.println("今天是:"+todate+"\n");
//获得今天的日期
SimpleDateFormat today=new SimpleDateFormat("dd");
String day=today.format(new Date());

for(int i=1;i<=100;i++){
Calendar curr = Calendar.getInstance();
//从今天起往前每推100周的在这过程中获得每个日子
curr.set(Calendar.DAY_OF_MONTH,curr.get(Calendar.DAY_OF_MONTH)-(i*7));
Date date=curr.getTime();
SimpleDateFormat isday=new SimpleDateFormat("dd");
//如果日期不等于今天的日期相等则跳过
if(!isday.format(date).equals(day)){
continue;

}
SimpleDateFormat dateformat=new SimpleDateFormat("yyyy年 MM月 dd日 HH:mm:ss E");

System.out.println("日期 :"+dateformat.format(date));

}

}
}

今天是:2012年 12月 15日 19:03:03 星期六
日期 :2012年 09月 15日 19:03:03 星期六
日期 :2011年 10月 15日 19:03:03 星期六
日期 :2011年 01月 15日 19:03:03 星期六

回答2:

public class DayAndWeek{

public void test(){
Calendar cal = Calendar.getInstance();
cal.setTime(new Date());
int day = cal.get(Calendar.DAY_OF_MONTH);
int wek = cal.get(Calendar.DAY_OF_WEEK);

System.out.println(String.format("今天是 %tc", cal.getTime()));
for(int j=0; j<=100; ){
cal.add(Calendar.MONTH, - 1);
int day2 = cal.get(Calendar.DAY_OF_MONTH);
int wek2 = cal.get(Calendar.DAY_OF_WEEK);
if( (day==day2) && (wek==wek2)){
System.out.println(String.format(" %tc",cal.getTime()) );
j++;

}
}
}

public static void main(String[] args){
new DayAndWeek().test();
}
}

今天是 星期四 十二月 06 13:10:11 CST 2012
星期四 九月 06 13:10:11 CST 2012
星期四 二月 06 13:10:11 CST 1997
星期四 六月 06 13:10:11 CST 1957
星期四 五月 06 13:10:11 CST 1954
星期四 三月 06 13:10:11 CST 1941
星期四 九月 06 13:10:11 CST 1906
星期四 三月 06 13:10:11 CST 1834
星期四 二月 06 13:10:11 CST 1823
星期四 九月 06 13:10:11 CST 1781
星期四 十二月 06 13:10:11 CST 1742
星期四 六月 06 13:10:11 CST 1715
星期四 二月 06 13:10:11 CST 1592