黑马程序员技术交流社区
标题:
关于Calendar类的问题
[打印本页]
作者:
赵国刚
时间:
2013-8-14 11:20
标题:
关于Calendar类的问题
本帖最后由 赵国刚 于 2013-8-16 11:30 编辑
个学生从开始上这个学期上课期到结课一共上了多少天,周六日刨除。下列是我做的,编译通过了就是运行时卡在那里了。我把条件写成while(c.compareTo(c1)<=0)运行结果为0,不知道是否是思路错了,请高手指教提出错误,写出正确的做法。
class CalendarTest
{
public static void main(String[] args)
{
Calendar c1=Calendar.getInstance();
c1.set(2012,6,10);
int count=0;
Calendar c=Calendar.getInstance();
while(c.DAY_OF_YEAR<=c1.DAY_OF_YEAR)
{
if (c.DAY_OF_WEEK>0&&c.DAY_OF_WEEK<6)
{
count++;
}
c.add(Calendar.DAY_OF_MONTH,1);
}
System.out.println(count+"天");
}
}
作者:
⑷嚸V恱
时间:
2013-8-14 13:02
你那个while 死循环了。 Calendar 取值不对 下面编的一个简单的例子
public class CalendarTest {
public static void main(String[] args)
{
Calendar c1=Calendar.getInstance();
c1.set(2012,7,14,3,3);// 传入日期的时期最好是时分秒否则日期会算到下一个天
/*注意 Calendar 中得到的月份加一 int month = c.get(Calendar.MONTH) + 1;*/
int startTime=c1.get(Calendar.DAY_OF_YEAR);
Calendar c=Calendar.getInstance();
int endTime=c.get(Calendar.MONTH);
System.out.println(startTime+"--"+endTime);
int time=0;;
if(c.get(Calendar.YEAR)>=c1.get(Calendar.YEAR)){//判断可能还存在问题,简单的思路
int dayTimes=endTime+365*(c.get(Calendar.YEAR)-c1.get(Calendar.YEAR))-startTime;
time=dayTimes-(dayTimes/7)*2;
}
System.out.println(time);
}
}
复制代码
作者:
未知数|X|
时间:
2013-8-16 10:13
本帖最后由 未知数|X| 于 2013-8-16 10:14 编辑
你这个要这样写的 count=1;//我用的before比较所以你要计算的结束日当天的花 count初值为1 while( c.befor(c1)){c.add(Calendar.DAY_OF_MONTH,1);if(c.get(Calendar.DAY _OF _WEEK )>1||c.get(Calendar.DAY _OF _WEEK )<7){count++;}} 你试试这个
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2