本帖最后由 smile_joe 于 2013-4-22 21:14 编辑
刚开始做的一种求法
package cn.joe;
import java.util.Calendar;
import java.util.Scanner;
// 从键盘输入一个年份,求出这一年中所有的星期天对应的日期
public class Test1 {
/**
* @param args
*/
public static void main(String[] args) {
method();
}
private static void method() {
Scanner sc = new Scanner(System.in);
System.out.println("出入一个年份:");
int i=sc.nextInt();
Calendar c=Calendar.getInstance();
c.set(i,0,1);
//boolean flag=true;
while(true) {//while(flag)
if (c.get(Calendar.DAY_OF_WEEK)==Calendar.SUNDAY) {
System.out.println(c.get(Calendar.MONTH)+1+"月"+c.get(Calendar.DAY_OF_MONTH)+"日");
}else if (c.get(Calendar.MONTH)==11 && c.get(Calendar.DAY_OF_MONTH)==31) {
// 判断天数累加到11月31,一年完,就停止
// flag=false;
break;
}c.add(Calendar.DAY_OF_YEAR,1);
}
}
}
-----------------------------------------------------------------------------------------------自己试验其他的方法
package cn.joe;
import java.util.Calendar;
import java.util.Scanner;
public class test3 {
public static void main(String[] args) {
// 键盘输入
Scanner sc=new Scanner(System.in);
System.out.println("输入一个年份:");
// 输入一个年份int值
int i=sc.nextInt();
// 新建当前日历
Calendar c=Calendar.getInstance();
c.set(i, 0, 1);//设置新的年 月 日
//得到设置日历的
int i1=c.get(Calendar.DAY_OF_MONTH);
int i2=c.get(Calendar.MONTH);
while(i1<=11 && i2<=31) {
if (c.get(Calendar.DAY_OF_WEEK)==Calendar.SUNDAY) {
System.out.println(c.get(Calendar.MONTH)+1+"月"+c.get(Calendar.DAY_OF_MONTH)+"日");
}
c.add(Calendar.DAY_OF_YEAR,1);
}
}
}
---------------------------------------------------------------------------------
package cn.joe;
import java.util.Calendar;
import java.util.Scanner;
public class test4 {
public static void main(String[] args) {
// 键盘输入
Scanner sc=new Scanner(System.in);
System.out.println("输入一个年份:");
// 输入一个年份int值
int i=sc.nextInt();
// 新建当前日历
Calendar c=Calendar.getInstance();
c.set(i, 0, 1);//设置新的年 月 日
//得到设置日历的
// int i1=c.get(Calendar.DAY_OF_YEAR);
// int i2=c.get(Calendar.MONTH);
int i1=1;
while(i1<=365) {
if (c.get(Calendar.DAY_OF_WEEK)==Calendar.SUNDAY) {
System.out.println(c.get(Calendar.MONTH)+1+"月"+c.get(Calendar.DAY_OF_MONTH)+"日");
}
// c.add(Calendar.DAY_OF_YEAR,1);
i1++;
}
}
}
想法是这样:给出一个while中的判断条件,
1.小于等于到12月31日条件,循环中date++,怎么实现
2.固定是365天,小于等于365作为条件,date++,的实现
3.或者有更好的方法,谢谢..... |