Popular Posts
asp.net form validate // 確認更新 function confirmUpdate(     confirmMessage, /* 確認訊息 */     validateGroup, /* validate group*/     fn /* 自訂欄位檢查function */ ) {     if... Capitalize First Letters Of Words string str = "EXTERNAL"; str = new string(str.Select((c, index) => index == 0 ? char.ToUpper(c) : char.ToLower(c)).ToArray()); ... Precautions of sharepoint performance issue Iterating through SPList Items Requesting too much data from the content database Memory Leaks with SPSite and SPWeb Index Columns are ...
Stats
DateHelper
package bruce.lib;

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;

/**
 * @author NaNashi
 * 
 */
public class DateHelper {
    private final static SimpleDateFormat LOG_DATE = new SimpleDateFormat("yyyyMMdd", Locale.US);
    private final static SimpleDateFormat DATE_ONLY = new SimpleDateFormat("yyyy/MM/dd", Locale.US);
    private final static SimpleDateFormat FULL_DATE = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss", Locale.US);

    public final static String logDate() {
        return LOG_DATE.format(new Date());
    }

    public final static String formatDate(Date date) {
        return date == null ? null : DATE_ONLY.format(date);
    }

    public final static String formatFullDate(Date date) {
        return date == null ? null : FULL_DATE.format(date);
    }

    public final static Date parseDate(String source) {
        return parseDate(source, false);
    }

    public final static Date parseDate(String source, boolean returnNowOnfailed) {
        try {
            return DATE_ONLY.parse(source);
        } catch (Exception e) {
            return returnNowOnfailed ? new Date() : null;
        }
    }

    public final static Date parseFullDate(String source) {
        return parseDate(source, false);
    }

    public final static Date parseFullDate(String source, boolean returnNowOnfailed) {
        try {
            return FULL_DATE.parse(source);
        } catch (Exception e) {
            return returnNowOnfailed ? new Date() : null;
        }
    }

    public final static String diffTime(Date before, Date after) {
        long sticks = Math.abs(before.getTime() - after.getTime());
        int seconds = (int) (sticks / 1000);
        int minutes = seconds / 60;
        int hours = minutes / 60;
        int days = hours / 24;

        StringBuilder sb = new StringBuilder();
        if (days > 0) {
            sb.append(days).append("天");
            hours -= days * 24;
            minutes -= days * 24 * 60;
            seconds -= days * 24 * 60 * 60;
        }
        if (hours > 0) {
            sb.append(hours).append("小時");
            minutes -= hours * 60;
            seconds -= hours * 60 * 60;
        }
        if (hours > 0 || minutes > 0) {
            sb.append(minutes).append("分");
            seconds -= minutes * 60;
        }

        sb.append(seconds).append("秒").append(before.after(after) ? "後" : "前");
        return sb.toString();
    }

    public static String replaceMonthWord(String s) {
        s = s.toLowerCase();
        String[] month = new String[] { "January", "Februaary", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December" };
        for (int i = 0; i < month.length; i++) {
            String m = month[i].toLowerCase();
            if (s.contains(m.toLowerCase()))
                return s.replace(m, String.valueOf(i + 1));
        }
        return s;
    }
}