String ii;//2002-12-31的前一天
int ss;//星期几(从星期天算起)
GregorianCalendar date=new GregorianCalendar(2003,0,1);
date.add(GregorianCalendar.DATE,-1);
Date d=date.getTime();
DateFormat fdate=DateFormat.getDateInstance();
ii=fdate.format(d);
ss=date.get(Calendar.DAY_OF_WEEK);
Calendar可以解决这个问题,要注意的是,Calendar中的月份是从0开始计算的,0代表一月,依次类推
int ss;//星期几(从星期天算起)
GregorianCalendar date=new GregorianCalendar(2003,0,1);
date.add(GregorianCalendar.DATE,-1);
Date d=date.getTime();
DateFormat fdate=DateFormat.getDateInstance();
ii=fdate.format(d);
ss=date.get(Calendar.DAY_OF_WEEK);
Calendar可以解决这个问题,要注意的是,Calendar中的月份是从0开始计算的,0代表一月,依次类推
/**
* 此处插入方法说明。 创建日期:(2001-10-19 16:50:17)
* @return long
* @param startdate java.lang.String 2001-10-19
* @param enddate java.lang.String 2001-10-19
*/
public long 两天之间天数(String startdate, String enddate) throws java.lang.Exception {
int[] start = new int[3];
java.util.StringTokenizer start1 = new java.util.StringTokenizer(startdate, "-");
int i = 0;
while (start1.hasMoreTokens()) {
start[i++] = Integer.parseInt(start1.nextToken());
System.out.println(start[i - 1]);
}
int[] end = new int[3];
java.util.StringTokenizer end1 = new java.util.StringTokenizer(enddate, "-");
i = 0;
while (end1.hasMoreTokens()) {
end[i++] = Integer.parseInt(end1.nextToken());
System.out.println(end[i - 1]);
}
System.out.println(end[2]);
Calendar c1 = Calendar.getInstance();
c1.set(start[0], start[1] - 1, start[2]);
long m1 = c1.getTime().getTime();
Calendar c2 = Calendar.getInstance();
c2.set(end[0], end[1] - 1, end[2]);
long m2 = c2.getTime().getTime();
System.out.println("m1=" + m1);
System.out.println("m2=" + m2);
long d = m2 - m1;
if (m1 > m2) {
// -------------------------------------------------------------------
cat.info("数据库时间设置有错误!");
// -------------------------------------------------------------------
throw(new Exception("数据库时间设置有错误!请重新设置数据库时间!!"));
}
return (d / (3600 * 24 * 1000));
}
/*
writer:freebird
time:021015
*/
package bean;
import java.util.*;
import java.lang.*;public class getDates { public getDates() { } public Vector vec=new Vector();
public Vector get_Date(int l_year,int l_month,int l_date){
Vector vec1 = new Vector();
Calendar cal = Calendar.getInstance();
Calendar cal2 = Calendar.getInstance();
cal.set(l_year,l_month-1,l_date);
cal2.set(l_year,l_month-1,l_date); int l_y2 = cal2.get(Calendar.YEAR);
int l_m2 = cal2.get(Calendar.MONTH)+1;
int l_d2 = cal2.get(Calendar.DAY_OF_MONTH);
int l_w2 = cal2.get(Calendar.DAY_OF_WEEK);
int l_maxday2 = cal2.getActualMaximum(Calendar.DAY_OF_MONTH);
String l_strdate = String.valueOf(l_y2)+"-"+String.valueOf(l_m2)+"-"+String.valueOf(l_d2);
vec1.addElement(l_strdate);
while(l_w2<7){
if(l_d2==l_maxday2){
if(l_m2==12){
cal2.set(l_y2+1,0,1);
}
else{
cal2.roll(Calendar.MONTH,true);
cal2.set(Calendar.DAY_OF_MONTH,1);
}
}
else{
cal2.roll(Calendar.DAY_OF_MONTH,true);
}
l_y2 = cal2.get(Calendar.YEAR);
l_m2 = cal2.get(Calendar.MONDAY)+1;
l_d2 = cal2.get(Calendar.DAY_OF_MONTH);
l_w2 = cal2.get(Calendar.DAY_OF_WEEK);
l_maxday2 = cal2.getActualMaximum(Calendar.DAY_OF_MONTH);
l_strdate = String.valueOf(l_y2)+"-"+String.valueOf(l_m2)+"-"+String.valueOf(l_d2);
vec1.addElement(l_strdate); }
int l_y = cal.get(Calendar.YEAR);
int l_m = cal.get(Calendar.MONTH)+1;
int l_d =cal.get(Calendar.DAY_OF_MONTH);
int l_w =cal.get(Calendar.DAY_OF_WEEK);
int l_maxday = cal.getActualMaximum(Calendar.DAY_OF_MONTH);
l_strdate = String.valueOf(l_y)+"-"+String.valueOf(l_m)+"-"+String.valueOf(l_d); while(l_w>1){
if (l_d==1){
if(l_m==1)
cal.set(l_y-1,11,31);
else {
cal.roll(Calendar.MONTH,false);
int l_y3=cal.get(Calendar.YEAR);
int l_m3 =cal.get(Calendar.MONTH)+1;
int l_d3 =cal.get(Calendar.DAY_OF_MONTH);
l_maxday = cal.getActualMaximum(Calendar.DAY_OF_MONTH);
System.out.println(l_y3);
System.out.println(l_m3);
System.out.println(l_d3);
cal.set(cal.get(Calendar.YEAR),cal.get(Calendar.MONTH),cal.getActualMaximum(Calendar.DAY_OF_MONTH));
}
}
else{
cal.roll(Calendar.DAY_OF_MONTH,false);
}
l_y = cal.get(Calendar.YEAR);
l_m =cal.get(Calendar.MONDAY)+1;
l_d =cal.get(Calendar.DAY_OF_MONTH);
l_w = cal.get(Calendar.DAY_OF_WEEK);
l_maxday = cal.getActualMaximum(Calendar.DAY_OF_MONTH);
l_strdate = String.valueOf(l_y)+"-"+String.valueOf(l_m)+"-"+String.valueOf(l_d);
vec1.insertElementAt(l_strdate,0);
}
return vec1;
}
/*
public static void main(String[] args){
getDates a= new getDates();
Vector b=a.get_Date(2002,1,1);
System.out.println(b); }
*/
}
主要关键是月份要减1。
代码如下:
Calendar cal = Calendar.getInstance();
//int LFD=FD-10000;
cal.set(2003,0,31);
int tWek= cal.get(cal.DAY_OF_WEEK);
cal.set(2002,0,31);
cal.add(cal.DATE,1);
int k = 10001;
if(cal.get(cal.DAY_OF_WEEK)!=tWek) {cal.add(cal.DATE,1);k++;}
int LFD=cal.get(cal.YEAR)*10000+cal.get(cal.MONTH)*100+cal.get(cal.DATE)+100;
//int LLD=LFD+(LD-FD);
System.out.println(LFD);
呵呵,怎么样,给我点分吧
对不起!我没有把所有方法列处理!其实搞之前还要加个一的!然后在减一!
跟“0代表一月”关系不是决定性的!哈哈!
哈哈!只不过很感谢你!俺不赖皮!
分分!我也想要怎么办?
我只要1分还不行吗?别的都给你们!
哈哈!
帮助UP!
THANKS!