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