當前位置: 首頁>>代碼示例>>Java>>正文


Java Duration.getHours方法代碼示例

本文整理匯總了Java中javax.xml.datatype.Duration.getHours方法的典型用法代碼示例。如果您正苦於以下問題:Java Duration.getHours方法的具體用法?Java Duration.getHours怎麽用?Java Duration.getHours使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在javax.xml.datatype.Duration的用法示例。


在下文中一共展示了Duration.getHours方法的1個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Java代碼示例。

示例1: add

import javax.xml.datatype.Duration; //導入方法依賴的package包/類
/**
 * 計算結束時間.
 */
public Date add(Date startDate, Duration duration) {
    // 得到對應的時間
    Calendar calendar = Calendar.getInstance();
    calendar.setTime(startDate);
    // 添加年數和月數,工作日方麵年和月的概念不會改變
    calendar.add(Calendar.YEAR, duration.getYears());
    calendar.add(Calendar.MONTH, duration.getMonths());

    // 天數,小時,分鍾可能因為工作日有概念,所以特殊處理
    int day = duration.getDays();
    int hour = duration.getHours();
    int minute = duration.getMinutes();

    if (accurateToDay) {
        // 有時需要自動把一天換算成8個小時,以實際計算工時
        hour += (day * HOUR_OF_DAY);
        day = 0;
    } else {
        Date workDate = this.findWorkDate(calendar.getTime());
        calendar.setTime(workDate);

        // 目前還沒有更好的算法,所以對天數累加,再判斷是否工作日
        for (int i = 0; i < day; i++) {
            calendar.add(Calendar.DATE, 1);

            int originHour = calendar.get(Calendar.HOUR_OF_DAY);
            int originMinute = calendar.get(Calendar.MINUTE);
            // 如果當前就是工作日,就返回當前時間
            // 如果當前的時間已經不是工作日了就返回最近的工作日
            workDate = this.findWorkDate(calendar.getTime());
            calendar.setTime(workDate);
            calendar.set(Calendar.HOUR_OF_DAY, originHour);
            calendar.set(Calendar.MINUTE, originMinute);
        }
    }

    Date targetDate = calendar.getTime();
    long millis = (hour * MILLIS_OF_HOUR) + (minute * MILLIS_OF_MINUTE);
    DayPart dayPart = this.findDayPart(targetDate);
    boolean isInbusinessHours = (dayPart != null);

    if (!isInbusinessHours) {
        DayPartResult dayPartResult = this.findTargetWorkDay(targetDate)
                .findNextDayPartStart(0, targetDate);
        targetDate = dayPartResult.getDate();
        dayPart = dayPartResult.getDayPart();
    }

    Date end = dayPart.add(targetDate, millis);

    return end;
}
 
開發者ID:zhaojunfei,項目名稱:lemon,代碼行數:56,代碼來源:WorkCalendar.java


注:本文中的javax.xml.datatype.Duration.getHours方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。