【发布时间】:2013-12-29 08:35:55
【问题描述】:
我需要准备一个工作日日期列表
注意:- 工作日不是星期六或星期日,(我可以将工作日作为参数传递)
我已经编写了以下代码但无法正常工作, 能否请您更正代码
public static void main (String[] args) {
List weekoffDates = new ArrayList<Timestamp>();
Timestamp date = "2013-12-01 00:00:00.0"; //This is timestamp object not string
Timestamp endDate = "2013-12-31 00:00:00.0"; //This is timestamp object not string
int dayOfWeek = 3 //TuesDay
for ( int i =1 ; i<=5; i++ ) {
if( ! date.after(endDate) ) {
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(date.getTime());
calendar.set( Calendar.DAY_OF_WEEK, dayOfWeek ); //This is my parameter
//calendar.set( Calendar.WEEK_OF_MONTH, i );
date = new Timestamp( calendar.getTimeInMillis() );
weekoffDates.add(date);
dayOfWeek = dayOfWeek +7;
System.out.println(date);
}
System.out.println(weekoffDates);
}
}
编辑:-
日期 :- 2013:December:1 (我已作为 Timestamp 对象发送)
EndDate :- 2013:December:31(我已作为 Timestamp 对象发送)
dayOfWeek :- 这是星期几(我已经在星期二 3 发送了这个参数) //它会动态变化
预期结果:-
十二月的所有星期二为 ArrayListlist
问题:- calendar.set( Calendar.DAY_OF_WEEK, dayOfWeek );设置错误
【问题讨论】:
-
不,它没有给出预期的结果例如 2013 年 12 月 1 日作为日期,endDate 是 2013 年 12 月 31 日,星期二作为休息日
-
请发布一个简短但完整的程序来演示问题,以及预期和实际结果。我还强烈建议您考虑使用 Joda Time 作为更好的日期/时间 API。
-
谢谢乔恩,我认为这是一个非常简单的要求,我可以用 java 日历和时间戳来实现。我一定会用我之前的评论更新这个问题
-
仅供参考,麻烦的旧日期时间类,如
java.util.Date、java.util.Calendar和java.text.SimpleTextFormat现在是 legacy,被 java.time 类取代。见Tutorial by Oracle。
标签: java date calendar timestamp