有没有人写过输入一个年份,
输入该年的所有周六,周日的程序.如果没有的话也可以给个建议.谢谢

解决方案 »

  1.   

    import java.util.Calendar;
    import java.util.GregorianCalendar;public class DateTest {    public static void main(String[] args) {
            int year = 2011;
            Calendar calendar = new GregorianCalendar(year, 0, 1);
            int i = 1;
            while (calendar.get(Calendar.YEAR) < year + 1) {
                calendar.set(Calendar.WEEK_OF_YEAR, i++);
                calendar.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY);
                if (calendar.get(Calendar.YEAR) == year) {
                    System.out.printf("星期天:%tF%n", calendar);
                }
                calendar.set(Calendar.DAY_OF_WEEK, Calendar.SATURDAY);
                if (calendar.get(Calendar.YEAR) == year) {
                    System.out.printf("星期六:%tF%n", calendar);
                }
            }
        }
    }
      

  2.   

    import java.text.SimpleDateFormat;
    import java.util.Calendar;
    import java.util.Date;/**
     * 
     *
     */
    public class Day { public static void main(String[] args) {

    SimpleDateFormat df=new SimpleDateFormat("yyyy-MM-dd");
    Calendar cal=Calendar.getInstance();
    int i = 1; //循环基数
    int year = 2007;//年份
    int week = Calendar.MONDAY;//指定的星期 cal.set(Calendar.YEAR, year);
    for( i= 1; i <= 365/7;i++ ){
    cal.set(Calendar.WEEK_OF_YEAR, i);
    cal.set(Calendar.DAY_OF_WEEK, week);
    System.out.println(df.format(cal.getTime()));
    }
    cal.set(Calendar.WEEK_OF_YEAR, i);
    cal.set(Calendar.DAY_OF_WEEK, week);

    int otherYear = cal.get(Calendar.YEAR);
    if(year==otherYear)
    System.out.println(df.format(cal.getTime()));

    }
    }
      

  3.   


    回楼主在这里是可以这样滴,365/7和366/7结果都是一样的。哥们!import java.text.SimpleDateFormat;
    import java.util.Calendar;
    import java.util.Date;/**
     * 
     *
     */
    public class Day {    public static void main(String[] args) {
            
            SimpleDateFormat df=new SimpleDateFormat("yyyy-MM-dd");
            Calendar cal=Calendar.getInstance();
            int i = 1; //循环基数
            int year = 2007;//年份
            int week = Calendar.MONDAY;//指定的星期        cal.set(Calendar.YEAR, year);
            for( i= 1; i <= 365/7;i++ ){ //365跟366除以7的结果都是一样的,所以严谨性我觉得够。
                cal.set(Calendar.WEEK_OF_YEAR, i);
                cal.set(Calendar.DAY_OF_WEEK, week);
                System.out.println(df.format(cal.getTime()));
            }
                cal.set(Calendar.WEEK_OF_YEAR, i);//存在一种可能,在最后不满足一周的情况下还存在指定的星期,故继续让时间往下推一周
                cal.set(Calendar.DAY_OF_WEEK, week);    
                
                int otherYear = cal.get(Calendar.YEAR);
                if(year==otherYear)//如果还在当年,就将它取(打印)出来
                System.out.println(df.format(cal.getTime()));
            
        }
    }