2011-01-07 19 views
0

我有一個排列日期。我想知道有多少個工作日在該陣列中。那麼,如何能做到這一點用java ..如何查找排列的工作日數

*here i read lines from csv file & put those into values. 
*values[2] contain the dates of that csv file. 
*So now i want to find number of weekdays in values[2]. 
FileInputStream fis=new FileInputStream("c:/sample.csv"); 
    InputStreamReader isr=new InputStreamReader(fis); 
    BufferedReader bf = new BufferedReader(isr); 
     while (bf.ready()) { 
       String line = bf.readLine(); 
       String[] values=line.split(","); 
       String date=values[2]; 
          } 

這裏是我的csv文件

11/1/2010,jhone 
11/3/2010,alex 
11/6/2010,jhone 
11/2/2010,neil 
11/20/2010,neil 
11/15/2010,jhone 
+0

我的格式是MM/d/yyyy – Chamal 2011-01-07 07:02:15

+0

你可以發一下你的CSV文件 – 2011-01-07 07:16:33

回答

2
String input = "11/1/2010"; 

SimpleDateFormat simpleDateFormat = new SimpleDateFormat("MM/d/yyyy"); 
Date date = simpleDateFormat.parse(input); 
Calendar calendar = Calendar.getInstance(); 
calendar.setTime(date); 
int dayOfWeek = calendar.get(Calendar.DAY_OF_WEEK); 
boolean isWeekday = dayOfWeek >= 2 && dayOfWeek <= 6; 
System.out.println(isWeekday); 
0

我看你看他們爲字符串,但你沒有提及日期的格式? (像例如YYYY-MM-DD)

你或許應該解析字符串轉換(使用DateFormat)一個Date對象,並用它來設置一個Calendar實例的時間。隨着日曆,你可以很容易地從日期得到工作日。

1

或者你可以使用喬達時庫。

DateTimeFormatter fmt = DateTimeFormat.forPattern("MM/dd/yyyy"); 
String dayOfWeek = fmt.parseDateTime(values[2]).dayOfWeek().getAsText(); 

然後你可以做一些比較邏輯來檢查字符串是'星期六'還是'星期天'。 Joda-Time API還允許您將值作爲int來使用,這意味着您只需檢查返回的整數是否大於5(1-Monday ... 7-Sunday)。

// int weekDayCount = 0; // initialise this somewhere. 
weekDayCount += ((fmt.parseDateTime(values[2]).dayOfWeek().get() < 6) ? 1 : 0); 

希望有幫助。