亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? 時間計算.txt

?? java 的代碼
?? TXT
字號:
時間計算 


public class Test {

    public static void main(String[] args) {
        Time t1 = new Time(1, 11, 32, 18);
        Time t2 = new Time(16, 58, 18);
        System.out.println("   t1: " + t1);
        System.out.println("   t2: " + t2);
        System.out.println("t1-t2: " + t1.subtractTime(t2));
        System.out.println("t1+t2: " + t1.addTime(t2));
        
        Time t3 = new Time("13:22:44");
        System.out.println("   t3: " + t3);
        
        Time t4 = new Time("16-58-18", "-");
        System.out.println("   t4: " + t4);
        
        System.out.println("t2==t4? " + t2.equals(t4));
    }
}




import java.text.DecimalFormat;
import java.util.Arrays;

/**
 * 時間計算工具類
 */
public class Time {

    /**
     * 時間字段常量,表示“秒”
      */
    public final static int SECOND = 0;
    
    /**
     * 時間字段常量,表示“分”
      */
    public final static int MINUTE = 1;
    
    /**
     * 時間字段常量,表示“時”
      */
    public final static int HOUR = 2;
    
    /**
     * 時間字段常量,表示“天”
      */
    public final static int DAY = 3;

    /**
     * 各常量允許的最大值
      */
    private final int[] maxFields = { 59, 59, 23, Integer.MAX_VALUE - 1 };
    
    /**
     * 各常量允許的最小值
      */
    private final int[] minFields = { 0, 0, 0, Integer.MIN_VALUE };
    
    /**
     * 默認的字符串格式時間分隔符
      */
    private String timeSeparator = ":";
    
    /**
     * 時間數據容器
      */
    private int[] fields = new int[4];    
    
    /**
     * 無參構造,將各字段置為 0
     */
    public Time() {
        this(0, 0, 0, 0);
    }

    /**
     * 使用時、分構造一個時間
      * @param hour      小時
      * @param minute    分鐘
      */
    public Time(int hour, int minute) {
        this(0, hour, minute, 0);
    }

    /**
     * 使用時、分、秒構造一個時間
      * @param hour      小時
      * @param minute    分鐘
      * @param second    秒
      */
    public Time(int hour, int minute, int second) {
        this(0, hour, minute, second);
    }
    
    /**
     * 使用一個字符串構造時間<br/>
     * Time time = new Time("14:22:23");
     * @param time      字符串格式的時間,默認采用“:”作為分隔符
      */
    public Time(String time) {        
        this(time, null);
    }

    /**
     * 使用天、時、分、秒構造時間,進行全字符的構造
      * @param day       天
      * @param hour      時
      * @param minute    分
      * @param second    秒
      */
    public Time(int day, int hour, int minute, int second) {
        set(DAY, day);
        set(HOUR, hour);
        set(MINUTE, minute);
        set(SECOND, second);
    }  
    
    /**
     * 使用一個字符串構造時間,指定分隔符<br/>
     * Time time = new Time("14-22-23", "-");
     * @param time      字符串格式的時間
      */
    public Time(String time, String timeSeparator) {
        if(timeSeparator != null) {
            setTimeSeparator(timeSeparator);
        }
        String pattern = patternQuote(this.timeSeparator);
        String matcher = new StringBuffer()
                                .append("\\d+?").append(pattern)
                                .append("\\d+?").append(pattern)
                                .append("\\d+?")
                                .toString();
        if(!time.matches(matcher)) {
            throw new IllegalArgumentException(time + ", time format error, HH"
                    + this.timeSeparator + "mm" + this.timeSeparator + "ss");
        }        
        String[] times = time.split(pattern);
        set(DAY, 0);
        set(HOUR, Integer.parseInt(times[0]));
        set(MINUTE, Integer.parseInt(times[1]));
        set(SECOND, Integer.parseInt(times[2]));
    }
    
    /**
     * 設置時間字段的值
     * @param field     時間字段常量
     * @param value     時間字段的值
     */
    public void set(int field, int value) {        
        if(value < minFields[field]) {
            throw new IllegalArgumentException(value +
                    ", time value must be positive.");
        }
        fields[field] = value % (maxFields[field] + 1);
        // 進行進位計算
         int carry = value / (maxFields[field] + 1);
        if(carry > 0) {
            int upFieldValue = get(field + 1);
            set(field + 1, upFieldValue + carry);
        }
    }

    /**
     * 獲得時間字段的值
      * @param field     時間字段常量
      * @return          該時間字段的值
      */
    public int get(int field) {
        if(field < 0 || field > fields.length - 1) {
            throw new IllegalArgumentException(field + ", field value is error.");
        }
        return fields[field];
    }

    /**
     * 將時間進行“加”運算,即加上一個時間
      * @param time      需要加的時間
      * @return          運算后的時間
      */
    public Time addTime(Time time) {
        Time result = new Time();
        int up = 0;     // 進位標志
         for (int i = 0; i < fields.length; i++) {
            int sum = fields[i] + time.fields[i] + up;
            up = sum / (maxFields[i] + 1);
            result.fields[i] = sum % (maxFields[i] + 1);
        }
        return result;
    }

    /**
     * 將時間進行“減”運算,即減去一個時間
      * @param time      需要減的時間
      * @return          運算后的時間
      */
    public Time subtractTime(Time time) {
        Time result = new Time();
        int down = 0;       // 退位標志
         for (int i = 0, k = fields.length - 1; i < k; i++) {
            int difference = fields[i] + down;
            if (difference >= time.fields[i]) {
                difference -= time.fields[i];
                down = 0;
            } else {
                difference += maxFields[i] + 1 - time.fields[i];
                down = -1;
            }
            result.fields[i] = difference;
        }
        result.fields[DAY] = fields[DAY] - time.fields[DAY] + down;
        return result;
    }
    
    /**
     * 獲得時間字段的分隔符
      * @return
     */
    public String getTimeSeparator() {
        return timeSeparator;
    }

    /**
     * 設置時間字段的分隔符(用于字符串格式的時間)
      * @param timeSeparator     分隔符字符串
      */
    public void setTimeSeparator(String timeSeparator) {
        this.timeSeparator = timeSeparator;
    }

    /**
     * 正則表達式引用處理方法,源自 JDK @link java.util.regex.Pattern#quote(String)
     */
    private String patternQuote(String s) {
        int slashEIndex = s.indexOf("\\E");
        if (slashEIndex == -1)
            return "\\Q" + s + "\\E";

        StringBuilder sb = new StringBuilder(s.length() * 2);
        sb.append("\\Q");
        slashEIndex = 0;
        int current = 0;
        while ((slashEIndex = s.indexOf("\\E", current)) != -1) {
            sb.append(s.substring(current, slashEIndex));
            current = slashEIndex + 2;
            sb.append("\\E\\\\E\\Q");
        }
        sb.append(s.substring(current, s.length()));
        sb.append("\\E");
        return sb.toString();
    }

    public String toString() {
        DecimalFormat df = new DecimalFormat("00");
        return new StringBuffer().append(fields[DAY]).append(", ")
                    .append(df.format(fields[HOUR])).append(timeSeparator)
                    .append(df.format(fields[MINUTE])).append(timeSeparator)
                    .append(df.format(fields[SECOND]))
                    .toString();
    }

    public int hashCode() {
        final int PRIME = 31;
        int result = 1;
        result = PRIME * result + Arrays.hashCode(fields);
        return result;
    }

    public boolean equals(Object obj) {
        if (this == obj)
            return true;
        if (obj == null)
            return false;
        if (getClass() != obj.getClass())
            return false;
        final Time other = (Time) obj;
        if (!Arrays.equals(fields, other.fields)) {
            return false;
        }
        return true;
    }
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲国产欧美日韩另类综合| 欧美国产视频在线| 久久久久一区二区三区四区| 亚洲欧美另类综合偷拍| 久草精品在线观看| 欧美日韩一区二区三区不卡| 中文字幕乱码一区二区免费| 国内精品第一页| 欧美绝品在线观看成人午夜影视| 亚洲女人的天堂| 成人黄色一级视频| 久久综合色8888| 美女脱光内衣内裤视频久久影院| 欧美天天综合网| 亚洲免费在线电影| 99麻豆久久久国产精品免费优播| 精品99一区二区三区| 美女性感视频久久| 欧美一区二区三区在线观看| 亚洲午夜一二三区视频| 日韩视频免费直播| 99国产精品久久久| 久久精品一区八戒影视| 韩国三级在线一区| 日韩亚洲欧美一区二区三区| 亚洲国产成人porn| 欧美四级电影网| 亚洲第一激情av| 欧美日韩国产经典色站一区二区三区 | 国产美女娇喘av呻吟久久| 欧美精品自拍偷拍| 日产国产高清一区二区三区 | 91久久精品一区二区| 亚洲同性同志一二三专区| 波多野结衣欧美| 国产精品福利在线播放| 99热国产精品| 亚洲成av人在线观看| 日韩高清欧美激情| 久久国产视频网| 日韩一卡二卡三卡四卡| 麻豆视频观看网址久久| 久久久蜜桃精品| 91亚洲国产成人精品一区二区三| 中文字幕一区二区三区四区不卡 | jlzzjlzz欧美大全| 亚洲综合在线观看视频| 欧美剧情电影在线观看完整版免费励志电影| 亚洲一二三区不卡| 日韩一区二区视频在线观看| 久久精品av麻豆的观看方式| 国产色综合久久| 色综合天天综合| 日日噜噜夜夜狠狠视频欧美人 | 国产成人免费av在线| 日韩欧美国产综合一区| 午夜精品成人在线视频| 欧美成人精品福利| 成人午夜av电影| 亚洲综合在线视频| 精品电影一区二区三区| 91在线小视频| 久久成人久久鬼色| 日韩美女视频一区| 日韩一区和二区| av亚洲精华国产精华| 午夜欧美大尺度福利影院在线看 | 亚洲少妇30p| 8x福利精品第一导航| 国产精品99久久久久| 香蕉久久一区二区不卡无毒影院| 久久免费视频一区| 欧美日韩免费一区二区三区视频 | 在线精品视频一区二区三四| 久久国产精品99精品国产| 亚洲天堂2014| 久久综合九色综合97婷婷女人| 一本大道久久a久久综合| 国产在线精品一区在线观看麻豆| 亚洲欧美福利一区二区| 26uuu成人网一区二区三区| 在线观看亚洲专区| 懂色av一区二区夜夜嗨| 蜜臀av性久久久久蜜臀av麻豆| 中文字幕日韩av资源站| 久久综合999| 欧美美女一区二区三区| 91首页免费视频| 国产成人日日夜夜| 久久66热偷产精品| 奇米777欧美一区二区| 亚洲一级二级三级| 国产精品成人免费| 国产欧美精品一区| www国产精品av| 日韩亚洲欧美综合| 91精品国产综合久久精品性色| 91蜜桃网址入口| 成a人片国产精品| 成人在线一区二区三区| 国产成人午夜精品影院观看视频 | 久久久久免费观看| 精品久久久久久久久久久久久久久久久 | 日韩精品中文字幕一区| 欧美妇女性影城| 欧美日本乱大交xxxxx| 91啪在线观看| 在线欧美日韩精品| 欧美怡红院视频| 欧美三级在线看| 欧美日韩三级视频| 91精品一区二区三区久久久久久| 欧美裸体一区二区三区| 制服丝袜激情欧洲亚洲| 欧美日本乱大交xxxxx| 欧美一区二区性放荡片| 91精品国产麻豆| 精品乱码亚洲一区二区不卡| 久久午夜老司机| 国产精品你懂的在线| 中文字幕在线观看一区二区| 成人欧美一区二区三区视频网页 | 亚洲久草在线视频| 亚洲精品中文字幕在线观看| 一区二区三区在线播| 视频在线观看国产精品| 九九热在线视频观看这里只有精品| 久久se精品一区精品二区| 国产精品自拍毛片| 99re视频精品| 欧美猛男男办公室激情| 精品免费视频.| 国产精品丝袜久久久久久app| 中文字幕亚洲欧美在线不卡| 亚洲一二三级电影| 精品中文字幕一区二区小辣椒| 国产福利91精品| 欧美色男人天堂| 精品久久久久久无| 亚洲欧美综合色| 免费人成在线不卡| 粉嫩av亚洲一区二区图片| 欧美亚洲图片小说| 精品国产一区二区精华| 欧美成人a视频| 欧洲国内综合视频| 欧美视频在线不卡| 精品裸体舞一区二区三区| 国产精品久久久久久久久免费樱桃| 亚洲欧美另类综合偷拍| 日韩va欧美va亚洲va久久| 国产成人精品aa毛片| 在线观看欧美精品| 久久精品一区二区三区四区| 亚洲黄色免费网站| 国产精品123区| 欧美日韩一本到| 中文字幕中文字幕一区| 日本欧美在线看| 日本丰满少妇一区二区三区| 精品久久久三级丝袜| 亚洲综合久久av| 国产精品一区专区| 9191国产精品| 亚洲免费视频成人| 高清日韩电视剧大全免费| 欧美精品第一页| 亚洲免费观看在线视频| 国产伦精品一区二区三区视频青涩| 粉嫩一区二区三区在线看| 欧美日韩精品是欧美日韩精品| 国产欧美日韩中文久久| 日本不卡中文字幕| 欧美在线你懂的| 自拍av一区二区三区| 懂色av一区二区三区免费观看| 精品乱人伦小说| 青青草一区二区三区| 欧美日韩一卡二卡三卡| 亚洲蜜桃精久久久久久久| 成人性生交大片免费看中文| 久久影院视频免费| 久久精品国产网站| 91精品欧美综合在线观看最新| 一区二区三区电影在线播| 91麻豆123| 亚洲丝袜另类动漫二区| 成人aaaa免费全部观看| 中文字幕av不卡| 粉嫩嫩av羞羞动漫久久久| 精品国产99国产精品| 久久精品国产99国产精品| 欧美一级黄色录像| 看电影不卡的网站| 久久夜色精品国产欧美乱极品| 日本美女一区二区三区视频| 制服视频三区第一页精品| 婷婷综合另类小说色区| 91精品国产黑色紧身裤美女| 美女在线一区二区|