70分日期问题!表面看不难实际很复杂啊 我能得到周几!怎么计算这个周几具体的年月日呢例如:我知道是周1然后我取当前的系统时间是周2我就要计算出下周2的具体年月日如果我得到的是周3我取当前系统时间是周2我就计算本周3具体的年月日 主要如果是年底我不知道怎么能计算出明年的准确日期 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 他说的是 if (time < system time){ next week data;}else{ this week data}年底好办啊你看是12月底就变为1月啦 年+1 日还是从头算啊 例如:我从数据库里取出的数据是周1 然后当前的系统时间是周2 我就要计算出下周1的具体年月日 如果数据库里取出的是周3(weekdate) 当前系统时间是周2我就计算本周3(sysdate) 具体的年月日就是说如果当前系统时间的周几如果比从数据库面取出来的周几大的话就推算的是下周的weekdate 例如:我从数据库里取出的数据是周1 然后当前的系统时间是周2 我就要计算出下周1的具体年月日 如果数据库里取出的是周3(weekdate) 当前系统时间是周2我就计算本周3(sysdate) 具体的年月日就是说如果当前系统时间的周几如果比从数据库面取出来的周几大的话就推算的是下周的weekdate年月日如果当前系统时间的周几如果比从数据库面取出来的周几小的话就推算的是本周的weekdate年月日例如数据库里取出来的是3我获取当前日期是星期1我就要得到该星期的星期3的具体年月日日数据库里取出来的是1我获取当前日期是星期2我就要取出下星期1的具体年月日 使用DateTime类,只要+7天就可以了。 public class TimeDesign { public static void main(String[] args) { Calendar calendar = new GregorianCalendar(2006, 1, 21); Calendar calendar1 = new GregorianCalendar(); int year = calendar.get(Calendar.YEAR); int year1 = calendar1.get(Calendar.YEAR); int month = calendar.get(Calendar.MONTH); int month1 = calendar1.get(Calendar.MONTH); int week = calendar.get(Calendar.WEEK_OF_MONTH); int week1 = calendar1.get(Calendar.WEEK_OF_MONTH); if (year == year1 && month == month1 && week == week1) { if (calendar.before(calendar1)) { calendar.add(calendar.get(Calendar.WEEK_OF_YEAR), 1); } int year2 = calendar.get(Calendar.YEAR); int month2 = calendar.get(Calendar.MONTH) + 1; int date2 = calendar.get(Calendar.DAY_OF_MONTH); System.out.println(year2 + " " + month2 + " " + date2); } else { System.out.println("none"); } }}初学者,写得比较烂 利用从数据库取得的时间实例化一个Calendar对象,然后调用Calendar.add(DAY_OF_YEAR,7)就搞定了。不用当前系统时间是大还是小 Calendar c = Calendar.getInstance(); int dbDay = 2;//monday int currDay = c.get(Calendar.DAY_OF_WEEK); if(dbDay >= currDay){ c.add(Calendar.DAY_OF_WEEK,dbDay-currDay); }else{ c.add(Calendar.DAY_OF_WEEK,dbDay+7-currDay); } System.out.println(c.getTime()); Calendar c = Calendar.getInstance(); int dbDay = 2;//monday int currDay = c.get(Calendar.DAY_OF_WEEK); if(dbDay >= currDay){ c.add(Calendar.DAY_OF_WEEK,dbDay-currDay); }else{ c.add(Calendar.DAY_OF_WEEK,dbDay+7-currDay); } Date d = c.getTime(); SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss"); System.out.println(sdf.format(d)); System.out.println(c.getTime()); public static void testcsdn(Date date){ GregorianCalendar calendar1=new GregorianCalendar(); GregorianCalendar calendar2=new GregorianCalendar(); calendar1.setTime(date); int weekday1=calendar1.get(Calendar.DAY_OF_WEEK); int weekday2=calendar2.get(Calendar.DAY_OF_WEEK); //考虑周日大于周一~周六 if(weekday1==1) weekday1+=7; if(weekday2==1) weekday2+=7; if(weekday1<weekday2){ calendar2.add(Calendar.DATE,7+weekday1-weekday2); }else{ calendar2.add(Calendar.DATE,7); } System.out.println("weekday1="+weekday1); System.out.println("weekday2="+weekday2); System.out.println("calendar2="+calendar2.getTime()); } 正则式+Simpledateformat+calendar解决所有日期问题 多线程管道通信 PipedInputStream抛出IOException "write end dead"异常 怎么解决?在线等 关于String类型变量split方法的输出问题求解 返回值问题 问个问题。。接口和内部类,抽象类的特性是什么啊? 大家说说这个的运行结果 怎样用Java做出与VC#一样的图形界面? 求两个日期之间相差几个月,的方法? 急,求几个简单(小白)的java程序,学习用,小弟刚学!!!!!!!!!(在线等) JavaWebStudio的问题 java初学者的一个小问题? 在线跪求————关于用java直接调用应用程序的困惑!! FTP的目录中文显示成乱码了???
{
next week data;
}
else
{
this week data
}年底好办啊你看是12月底就变为1月啦 年+1 日还是从头算啊
然后当前的系统时间是周2
我就要计算出下周1的具体年月日 如果数据库里取出的是周3(weekdate)
当前系统时间是周2我就计算本周3(sysdate)
具体的年月日
就是说如果当前系统时间的周几如果比从数据库面取出来的周几大的话就推算的是下周的weekdate
然后当前的系统时间是周2
我就要计算出下周1的具体年月日 如果数据库里取出的是周3(weekdate)
当前系统时间是周2我就计算本周3(sysdate)
具体的年月日
就是说如果
当前系统时间的周几如果比从数据库面取出来的周几大的话就推算的是下周的weekdate年月日
如果
当前系统时间的周几如果比从数据库面取出来的周几小的话就推算的是本周的weekdate年月日例如
数据库里取出来的是3
我获取当前日期是星期1我就要得到该星期的星期3的具体年月日日数据库里取出来的是1
我获取当前日期是星期2
我就要取出下星期1的具体年月日
Calendar calendar = new GregorianCalendar(2006, 1, 21);
Calendar calendar1 = new GregorianCalendar();
int year = calendar.get(Calendar.YEAR);
int year1 = calendar1.get(Calendar.YEAR);
int month = calendar.get(Calendar.MONTH);
int month1 = calendar1.get(Calendar.MONTH);
int week = calendar.get(Calendar.WEEK_OF_MONTH);
int week1 = calendar1.get(Calendar.WEEK_OF_MONTH);
if (year == year1 && month == month1 && week == week1) {
if (calendar.before(calendar1)) {
calendar.add(calendar.get(Calendar.WEEK_OF_YEAR), 1);
}
int year2 = calendar.get(Calendar.YEAR);
int month2 = calendar.get(Calendar.MONTH) + 1;
int date2 = calendar.get(Calendar.DAY_OF_MONTH);
System.out.println(year2 + " " + month2 + " " + date2);
} else {
System.out.println("none");
}
}
}初学者,写得比较烂
int dbDay = 2;//monday
int currDay = c.get(Calendar.DAY_OF_WEEK);
if(dbDay >= currDay){
c.add(Calendar.DAY_OF_WEEK,dbDay-currDay);
}else{
c.add(Calendar.DAY_OF_WEEK,dbDay+7-currDay);
}
System.out.println(c.getTime());
int dbDay = 2;//monday
int currDay = c.get(Calendar.DAY_OF_WEEK);
if(dbDay >= currDay){
c.add(Calendar.DAY_OF_WEEK,dbDay-currDay);
}else{
c.add(Calendar.DAY_OF_WEEK,dbDay+7-currDay);
}
Date d = c.getTime();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
System.out.println(sdf.format(d));
System.out.println(c.getTime());
GregorianCalendar calendar1=new GregorianCalendar();
GregorianCalendar calendar2=new GregorianCalendar();
calendar1.setTime(date);
int weekday1=calendar1.get(Calendar.DAY_OF_WEEK);
int weekday2=calendar2.get(Calendar.DAY_OF_WEEK);
//考虑周日大于周一~周六
if(weekday1==1) weekday1+=7;
if(weekday2==1) weekday2+=7;
if(weekday1<weekday2){
calendar2.add(Calendar.DATE,7+weekday1-weekday2);
}else{
calendar2.add(Calendar.DATE,7);
} System.out.println("weekday1="+weekday1);
System.out.println("weekday2="+weekday2);
System.out.println("calendar2="+calendar2.getTime());
}