1 /*
2 * File: DateUtils.java
3 * Copyright (c) 2004-2007 Peter Kliem (Peter.Kliem@jaret.de)
4 * A commercial license is available, see http://www.jaret.de.
5 *
6 * All rights reserved. This program and the accompanying materials
7 * are made available under the terms of the Common Public License v1.0
8 * which accompanies this distribution, and is available at
9 * http://www.eclipse.org/legal/cpl-v10.html
10 */
11 package de.jaret.util.date;
12
13 import java.util.Calendar;
14
15 import de.jaret.util.date.holidayenumerator.HolidayEnumerator;
16
17 /**
18 * Date util class containing methods for JaretDate and the HolidayEnumerator.
19 *
20 * @author Peter Kliem
21 * @version $Id: DateUtils.java 262 2007-02-17 23:51:03Z olk $
22 */
23 public class DateUtils {
24 /**
25 * Count the working days between from and to.
26 *
27 * @param from start date. Will be included!
28 * @param to end date. will be included.
29 * @param he holidayenumerator for determinig if a day is a holiday
30 * @return number of working days
31 */
32 public static int workingDays(JaretDate from, JaretDate to, HolidayEnumerator he) {
33 int count = 0;
34
35 JaretDate d = from.copy();
36 while (d.compareDateTo(to) <= 0) {
37 if (!d.isWeekendDay() && !he.isHoliday(d.getDate())) {
38 count++;
39 }
40 d.advanceDays(1);
41 }
42
43 return count;
44 }
45
46 /** cache for the first day of the week. */
47 private static int _firstDayofWeek = -1;
48 /**
49 * Retrieve the first day of the week using the systems default locale.
50 *
51 * @return the first day of the week as defiend in gregoriean calendar for the current default locale.
52 */
53 public static int getFirstDayOfWeek() {
54 if (_firstDayofWeek != -1) {
55 return _firstDayofWeek;
56 }
57 Calendar cal = Calendar.getInstance();
58 _firstDayofWeek = cal.getFirstDayOfWeek();
59 return _firstDayofWeek;
60 }
61
62
63
64 }