在做一个教务系统,遇到两个算法:
1、已知一个学期的开学日期和放假日期(假设:一个学期有20周),如何根据当前日期获得当前是这个学期的第几周;
2、已知一个学生的入学时间(每个学期的时间参考第一题条件),如何根据当前日期判断这个学生现在在读第几个学期;
请大家帮帮忙.....会几道答几道,能用的都给分

解决方案 »

  1.   


    1.
    public int getIndex(int year,int month,int day){
    Calendar cal = Calendar.getInstance();
    cal.set(year,month-1,day);
    int week1 = cal.get(Calendar.WEEK_OF_YEAR);
    cal.setTimeInMillis(System.currentTimeMillis());
    int week2 = cal.get(Calendar.WEEK_OF_YEAR);
    return week2-week1+1;
    }
      

  2.   

    java的这个有没有源码啊,楼主找找,看看里面是怎么实现的
      

  3.   

    import java.text.ParseException;
    import java.text.SimpleDateFormat;
    import java.util.Date;public class WhichTerm {
    public static void main(String[] args){
    int termNum = 8;
    Term[] terms = new Term[termNum];
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
    try {
    terms[0] = new Term(sdf.parse("2003-09-01"),sdf.parse("2004-01-20"));
    terms[1] = new Term(sdf.parse("2004-02-25"),sdf.parse("2004-07-01"));
    terms[2] = new Term(sdf.parse("2004-09-01"),sdf.parse("2005-01-20"));
    terms[3] = new Term(sdf.parse("2005-02-25"),sdf.parse("2005-07-01"));
    terms[4] = new Term(sdf.parse("2005-09-01"),sdf.parse("2006-01-20"));
    terms[5] = new Term(sdf.parse("2006-02-25"),sdf.parse("2006-07-01"));
    terms[6] = new Term(sdf.parse("2006-09-01"),sdf.parse("2006-01-20"));
    terms[7] = new Term(sdf.parse("2007-02-25"),sdf.parse("2007-07-01"));

    Date todayDate = sdf.parse("2004-02-25");
    int i =0;
    for(;i<terms.length-1;i++){
    Term term = terms[i];
    Term nextTerm  = terms[i+1];
    if(todayDate.compareTo(term.getStartDate())>=0 && todayDate.compareTo(nextTerm.getStartDate())<0){
    break;
    }
    }
    int which = i+1;
    System.out.println("which is:"+which);
    } catch (ParseException e) {
    e.printStackTrace();
    }

    }
    }
    class Term{
    private Date startDate;

    private Date endDate;
    public Term(Date startDate,Date endDate){
    this.startDate = startDate;
    this.endDate = endDate;
    }
    public Date getStartDate() {
    return startDate;
    }
    public void setStartDate(Date startDate) {
    this.startDate = startDate;
    }
    public Date getEndDate() {
    return endDate;
    }
    public void setEndDate(Date endDate) {
    this.endDate = endDate;
    }
    }