<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    llwangyu

    fisher's java blog

     

    日期類,實用的很(摘自csdn)

    import java.text.DateFormat;
    import java.text.DecimalFormat;
    import java.util.Calendar;
    import java.util.HashMap;
    import java.util.Locale;
    import java.util.TimeZone;

    public class DateUtil {

    ??? public static void main(String[] args) {
    ??????? System.out.println(utilDateFormat(new java.util.Date(),2));
    ??????? System.out.println(getDate(0).get(Calendar.DATE));
    ??????? System.out.println(" 2005-05-31 " + (DateUtil.getDate("2005-05-31").get(Calendar.MONTH) + 1));
    ??????? System.out.println(" 2005-06-05? " + DateUtil.getDate(-1).get(Calendar.MONTH));
    ??? }
    ???
    ??? /**
    ???? * 格式化util日期類的輸出
    ???? *
    ???? * @param utilDate
    ???? * @param pattern
    ???? * @return
    ???? */
    ??? public static String getDateStr8() {
    ???
    ??? String myDate=utilDateFormat(new java.util.Date(),2);
    ???
    ??? String tmp_Year=myDate.substring(0,myDate.indexOf("-"));
    ???
    ??? String tmp_Month=myDate.substring(myDate.indexOf("-")+1,myDate.lastIndexOf("-"));
    ??? if(tmp_Month.length()==1) tmp_Month="0"+tmp_Month;
    ???
    ??? String tmp_Day=myDate.substring(myDate.lastIndexOf("-")+1);
    ??? if(tmp_Day.length()==1) tmp_Day="0"+tmp_Day;
    ??? myDate=tmp_Year+""+tmp_Month+""+tmp_Day+"";
    ??????
    ??? return myDate;
    ??? }???

    ??? /**
    ???? * 得到大于、小于 或等于制定天數的日期
    ???? *
    ???? * @param num 相差的天數,其中正數為當前日期的后日期;零為當前日期;負數為當前日期的前多少天的日期
    ???? * @return Calendar
    ???? */
    ??? public static Calendar getDate(int num) {
    ??????? Calendar cal = Calendar.getInstance(TimeZone.getDefault(), new Locale("zh", "CN"));
    ??????? cal.add(Calendar.DATE, num);
    ??????? return cal;
    ??? }

    ??? /**
    ???? * @param dateStr 日期字符串 格式:"yyyy-MM-dd"
    ???? */
    ??? public static Calendar getDate(String dateStr) {
    ??????? try {
    ??????????? String[] date = StringUtil.splitStr(dateStr, "-");
    ??????????? Calendar cal = Calendar.getInstance(TimeZone.getDefault(), new Locale("zh", "CN"));
    ??????????? cal.set(Integer.parseInt(date[0]), Integer.parseInt(date[1]) - 1, Integer.parseInt(date[2]));
    ??????????? return cal;
    ??????? } catch (Exception e) {
    ??????????? System.out.println(e.getMessage());
    ??????????? return Calendar.getInstance(TimeZone.getDefault(), new Locale("zh", "CN"));
    ??????? }
    ??? }
    ???
    ??? public static Calendar getDateStr(String dateStr) {
    ??????? try {
    ??????????? String year = dateStr.substring(0,4);
    ??????????? String month= dateStr.substring(4,6);
    ??????????? String day = dateStr.substring(6,8);
    ???????????
    ??????????? Calendar cal = Calendar.getInstance(TimeZone.getDefault(), new Locale("zh", "CN"));
    ??????????? cal.set(Integer.parseInt(year), Integer.parseInt(month) - 1, Integer.parseInt(day));
    ??????????? return cal;
    ??????? } catch (Exception e) {
    ??????????? System.out.println(e.getMessage());
    ??????????? return Calendar.getInstance(TimeZone.getDefault(), new Locale("zh", "CN"));
    ??????? }
    ??? }

    ??? /**
    ???? * 格式化util日期類的輸出
    ???? *
    ???? * @param utilDate
    ???? * @param pattern
    ???? * @return
    ???? */
    ??? public static String utilDateFormat(java.util.Date utilDate, int pattern) {
    ??????? if (null == utilDate) return "";
    ??????? switch (pattern) {
    ??????????? case DateFormat.SHORT:? //3? 05-4-3
    ??????????????? return DateFormat.getDateInstance(DateFormat.SHORT).format(utilDate);
    ??????????? case DateFormat.MEDIUM: //2? 2005-4-3
    ??????????????? return DateFormat.getDateInstance(DateFormat.MEDIUM).format(utilDate);
    ??????????? case DateFormat.LONG:?? //1? 2005年4月3日
    ??????????????? return DateFormat.getDateInstance(DateFormat.LONG).format(utilDate);
    ??????????? case DateFormat.FULL:?? //0? 2005年4月3日 星期日
    ??????????? default:
    ??????????????? return DateFormat.getDateInstance(DateFormat.FULL).format(utilDate);
    ??????? }
    ??? }

    ??? /**
    ???? * 格式化SQL日期類的輸出
    ???? *
    ???? * @param sqlDate
    ???? * @param pattern
    ???? * @return
    ???? */
    ??? public static String sqlDateFormat(java.sql.Date sqlDate, int pattern) {
    ??????? if (null == sqlDate) return "";
    ??????? java.util.Date dd = new java.util.Date();
    ??????? dd.setTime(0);
    ??????? if (4 > pattern && 0 <= pattern)
    ??????????? return utilDateFormat(new java.util.Date(sqlDate.getTime()), pattern);
    ??????? return sqlDate.toString();
    ??? }

    ??? /**
    ???? * 格式化SQL日期類的輸出
    ???? *
    ???? * @param sqlDate
    ???? * @return
    ???? */
    ??? public static Calendar sqlDateFormat(java.sql.Date sqlDate) {
    ??????? Calendar cal = Calendar.getInstance(TimeZone.getDefault(),
    ??????????????? new Locale("zh", "CN"));
    ??????? if (null == sqlDate) return null;
    ??????? cal.setTime(new java.util.Date(sqlDate.getTime()));
    ??????? return cal;
    ??? }

    ??? /**
    ???? * cover String to sqlDate
    ???? *
    ???? * @param date
    ???? * @return
    ???? */
    ??? public static java.sql.Date newSqlDate(String date) {
    ??????? java.util.Date utilDate = null;
    ??????? if (null == date || "".equals(date))
    ??????????? utilDate = new java.util.Date();
    ??????? else
    ??????????? utilDate = new java.util.Date(CFormat.replace(date, "-", "/"));
    ??????? java.sql.Date sqlDate = new java.sql.Date(utilDate.getTime());

    ??????? return sqlDate;
    ??? }

    ??? //數字補位01
    ??? public static String formatNum(int num) {
    ??????? if (0 < num && 10 > num) return "0" + num;
    ??????? return "" + num;
    ??? }

    ??? /**
    ???? * 計算某年某月的日期數
    ???? *
    ???? * @param year
    ???? * @param month
    ???? * @return
    ???? */
    ??? public static int countDaysOfMonth(int year, int month) {
    ??????? switch (month) {
    ??????????? case 1:
    ??????????? case 3:
    ??????????? case 5:
    ??????????? case 7:
    ??????????? case 8:
    ??????????? case 10:
    ??????????? case 12:
    ??????????????? return 31;
    ??????????? case 4:
    ??????????? case 6:
    ??????????? case 9:
    ??????????? case 11:
    ??????????????? return 30;
    ??????????? case 2:
    ??????????????? //是否為閏年
    ??????????????? boolean isRunYear = (year % 400 == 0) || (year % 4 == 0 && year % 100 != 0);
    ??????????????? return isRunYear ? 29 : 28;
    ??????????? default: //包含 0月及 13月
    ??????????????? return 31;
    ??????? }
    ??? }

    ??? /**
    ???? * 是否為月末
    ???? *
    ???? * @param year
    ???? * @param month
    ???? * @param dy
    ???? * @return
    ???? */
    ??? public static boolean isLastDayOfMonth(int year, int month, int dy) {
    ??????? if (dy == countDaysOfMonth(year, month)) return true;
    ??????? return false;
    ??? }

    ??? /**
    ???? * 是否為年末
    ???? *
    ???? * @param month
    ???? * @param dy
    ???? * @return
    ???? */
    ??? public static boolean isLastDayOfYear(int month, int dy) {
    ??????? if (12 == month && 31 == dy) return true;
    ??????? return false;
    ??? }

    ??? /**
    ???? * 是否為季末
    ???? *
    ???? * @param year
    ???? * @param month
    ???? * @param dy
    ???? * @return
    ???? */
    ??? public static boolean isLastDayOfQuarter(int year, int month, int dy) {
    ??????? if (month % 3 == 0 && dy == countDaysOfMonth(year, month)) return true;
    ??????? return false;
    ??? }

    ??? /**
    ???? * 是否為新年
    ???? *
    ???? * @param month
    ???? * @param dy
    ???? * @return
    ???? */
    ??? public static boolean isNewYear(int month, int dy) {
    ??????? if (1 == month && 1 == dy) return true;
    ??????? return false;
    ??? }

    ??? /**
    ???? * 是否為下半年
    ???? *
    ???? * @param month
    ???? * @param dy
    ???? * @return
    ???? */
    ??? public static boolean isNewHalfYear(int month, int dy) {
    ??????? if (7 == month && 1 == dy) return true;
    ??????? return isNewYear(month, dy);
    ??? }

    ??? /**
    ???? * 是否為新季
    ???? *
    ???? * @param month
    ???? * @param dy
    ???? * @return
    ???? */
    ??? public static boolean isNewQuarter(int month, int dy) {
    ??????? if (month % 3 == 1 && dy == 1) return true;
    ??????? return false;
    ??? }
    ??? /**
    ???? * 是否為新月份
    ???? *
    ???? * @param dy 日期
    ???? * @return
    ???? */
    ??? public static boolean isNewMonth(int dy) {
    ??????? if (1 == dy) return true;
    ??????? return false;
    ??? }

    ??? /**
    ???? * 是否為新旬
    ???? *
    ???? * @param dy
    ???? * @return
    ???? */
    ??? public static boolean isNewTenday(int dy) {
    ??????? if (1 == dy % 10 && dy < 31) return true;
    ??????? return false;
    ??? }

    ??? /**
    ???? * 是否為周一
    ???? *
    ???? * @param year
    ???? * @param month
    ???? * @param dy
    ???? * @return
    ???? */
    ??? public static boolean isNewWeek(int year, int month, int dy) {
    ??????? java.util.Date utilDate = new java.util.Date(year + "/" + month + "/" + dy);
    ??????? return checkDayOfWeek(utilDate, 1);
    ??? }

    ??? /**
    ???? * 是否為周一
    ???? *
    ???? * @param utilDate
    ???? * @return
    ???? */
    ??? public static boolean isNewWeek(java.util.Date utilDate) {
    ??????? return checkDayOfWeek(utilDate, 1);
    ??? }

    ??? /**
    ???? * 是否為周末(周五)
    ???? *
    ???? * @param utilDate
    ???? * @return
    ???? */
    ??? public static boolean isLastDayOfWeek(java.util.Date utilDate) {
    ??????? return checkDayOfWeek(utilDate, 5);
    ??? }

    ??? /**
    ???? * 驗證某天為星期幾
    ???? *
    ???? * @param utilDate 驗證日期
    ???? * @param dw?????? 星期數
    ???? * @return
    ???? */
    ??? public static boolean checkDayOfWeek(java.util.Date utilDate, int dw) {
    ??????? if (null == utilDate) return false;
    ??????? if (dw == utilDate.getDay()) return true;
    ??????? return false;
    ??? }

    ??? private static HashMap CYCLE_MAP = null;
    ??? public static String CYL_YEAR = "Y";
    ??? public static String CYL_HLF_YEAR = "H";
    ??? public static String CYL_QUARTER = "S";
    ??? public static String CYL_MONTH = "M";
    ??? public static String CYL_TEN_DAY = "T";
    ??? public static String CYL_WEEK = "W";
    ??? public static String CYL_DAY = "D";

    ??? /**
    ???? * 周期集
    ???? *
    ???? * @return
    ???? */
    ??? public static HashMap getCycleMap() {
    ??????? if (null == CYCLE_MAP) {
    ??????????? CYCLE_MAP = new java.util.HashMap();
    ??????????? CYCLE_MAP.put(CYL_YEAR, "年");
    ??????????? CYCLE_MAP.put(CYL_HLF_YEAR, "半年");
    ??????????? CYCLE_MAP.put(CYL_QUARTER, "季");
    ??????????? CYCLE_MAP.put(CYL_MONTH, "月");
    ??????????? CYCLE_MAP.put(CYL_TEN_DAY, "旬");
    ??????????? //CYCLE_MAP.put(CYL_WEEK, "周");
    ??????????? CYCLE_MAP.put(CYL_DAY, "日");
    ??????? }
    ??????? return CYCLE_MAP;
    ??? }
    ??? /**
    ???? * 某日可用的周期集
    ???? *
    ???? * @return
    ???? */
    ??? public static String[] getCycleTskOfDay(java.util.Date utilDate) {
    ??????? int month = utilDate.getMonth() + 1;
    ??????? int dt = utilDate.getDate();
    ??????? //新年
    ??????? if (isNewYear(month, dt)) {
    ??????????? return new String[]{CYL_YEAR, CYL_HLF_YEAR, CYL_QUARTER, CYL_MONTH, CYL_TEN_DAY, CYL_DAY};
    ??????? }
    ??????? //半年
    ??????? if (isNewHalfYear(month, dt)) {
    ??????????? return new String[]{CYL_HLF_YEAR, CYL_QUARTER, CYL_MONTH, CYL_TEN_DAY, CYL_DAY};
    ??????? }
    ??????? //季度
    ??????? if (isNewQuarter(month, dt)) {
    ??????????? return new String[]{CYL_QUARTER, CYL_MONTH, CYL_TEN_DAY, CYL_DAY};
    ??????? }
    ??????? //月
    ??????? if (isNewMonth(dt)) {
    ??????????? return new String[]{CYL_MONTH, CYL_TEN_DAY, CYL_DAY};
    ??????? }
    ??????? //旬
    ??????? if (isNewTenday(dt)) {
    ??????????? return new String[]{CYL_TEN_DAY, CYL_DAY};
    ??????? }
    ??????? return new String[]{CYL_DAY};
    ??? }

    ??? /**
    ???? * 某日可用的周期集
    ???? *
    ???? * @param date 支持格式如: 2004-12-1 和 2004/12/1
    ???? * @return
    ???? */
    ??? public static String[] getCycleTskOfDay(String date) {
    ??????? if (null == date) return null;
    ??????? if ("".equals(date)) return getCycleTskOfCurDay();
    ??????? date = CFormat.replace(date, "-", "/");
    ??????? return getCycleTskOfDay(new java.util.Date(date));
    ??? }

    ??? /**
    ???? * 今天的周期集
    ???? *
    ???? * @return
    ???? */
    ??? public static String[] getCycleTskOfCurDay() {
    ??????? return getCycleTskOfDay(new java.util.Date());
    ??? }


    ??? //加工周期
    ??? private static String[] ARY_CYL = {CYL_YEAR, CYL_HLF_YEAR, CYL_QUARTER, CYL_MONTH, CYL_TEN_DAY, CYL_DAY};
    ??? private static String[] ARY_Field = {"prcylY", "prcylH", "prcylS", "prcylM", "prcylT", "prcylD"};
    ??? //周期標示
    ??? private static String CYL_TYPE = "Y";

    ??? public static String[] getCylFieldArray() {
    ??????? return ARY_Field;
    ??? }

    ??? public static String[] getCylValueArray() {
    ??????? return ARY_CYL;
    ??? }

    ??? /**
    ???? * @param ary
    ???? * @return
    ???? */
    ??? public static String getStrCylQuery(String[] ary, String tabAlas) {
    ??????? StringBuffer bf = new StringBuffer();
    ??????? if (null == ary || ary.length == 0) {
    ??????????? for (int i = 0; i < ARY_Field.length; i++) {
    ??????????????? bf.append(getOneCylQuery(tabAlas, ARY_Field[i], "N"));
    ??????????? }
    ??????? } else {
    ??????????? for (int i = 0; i < ary.length; i++) {
    ??????????????? String s = ary[i];
    ??????????????? if (null != s)
    ??????????????????? for (int j = 0; j < ARY_Field.length; j++) {
    ??????????????????????? if (s.equals(ARY_CYL[j]))
    ??????????????????????????? bf.append(getOneCylQuery(tabAlas, ARY_Field[j], CYL_TYPE));
    ??????????????????? }
    ??????????? }
    ??????? }
    ??????? return bf.toString();
    ??? }

    ??? private static StringBuffer getOneCylQuery(String tabAlas, String field, String value) {
    ??????? StringBuffer bf = new StringBuffer();
    ??????? if (null == tabAlas || null == field) return bf;
    ??????? String alias = tabAlas + "." + field;
    ??????? if ("Y".equals(value)) {
    ??????????? bf.append(" and ").append(alias).append(" ='").append(CYL_TYPE).append("' \n");
    ??????? } else {
    ??????????? bf.append(" and ").append(alias).append(" !='").append(CYL_TYPE).append("' \n");
    ??????? }
    ??????? return bf;
    ??? }

    ??? public static String getYearOptions(int defYear, int maxYear, int minYear) {
    ??????? if (0 == maxYear) {
    ??????????? Calendar cal = Calendar.getInstance();
    ??????????? maxYear = cal.get(Calendar.YEAR);
    ??????? }
    ??????? if (0 == minYear) minYear = 1970;
    ??????? StringBuffer bfOption = new StringBuffer();
    ??????? for (int i = maxYear; i >= minYear; i--) {
    ??????????? if (defYear == i)
    ??????????????? bfOption.append("<option value=" + i + " selected>" + i + "</option>");
    ??????????? else
    ??????????????? bfOption.append("<option value=" + i + ">" + i + "</option>");
    ??????? }
    ??????? return bfOption.toString();
    ??? }

    ??? public static String getMonthOptions(int month, DecimalFormat df) {
    ??????? StringBuffer bfOption = new StringBuffer();
    ??????? for (int i = 1; i <= 12; i++) {
    ??????????? if (month == i)
    ??????????????? bfOption.append("<option value=" + df.format(i) + " selected>" + i + "</option>");
    ??????????? else
    ??????????????? bfOption.append("<option value=" + df.format(i) + ">" + i + "</option>");
    ??????? }
    ??????? return bfOption.toString();
    ??? }

    ??? public static String getDayOptions(int year, int month, int day, DecimalFormat df) {
    ??????? StringBuffer bfOption = new StringBuffer();
    ??????? int lastDay = 31;
    ??????? if (0 < year && 0 < month)
    ??????????? lastDay = countDaysOfMonth(year, month);
    ??????? for (int i = 1; i <= lastDay; i++) {
    ??????????? if (day == i)
    ??????????????? bfOption.append("<option value=" + df.format(i) + " selected>" + i + "</option>");
    ??????????? else
    ??????????????? bfOption.append("<option value=" + df.format(i) + ">" + i + "</option>");
    ??????? }
    ??????? return bfOption.toString();
    ??? }

    ??? //第幾季
    ??? public static int getQuartarNum(int month) {
    ??????? if (month < 4)
    ??????????? return 1;
    ??????? else if (month < 7)
    ??????????? return 2;
    ??????? else if (month < 10)
    ??????????? return 3;
    ??????? else
    ??????????? return 4;
    ??? }

    ??? //第幾旬
    ??? public static int getTenNum(int day) {
    ??????? if (day < 11)
    ??????????? return 1;
    ??????? else if (day < 21)
    ??????????? return 2;
    ??????? else
    ??????????? return 3;
    ??? }

    ??? //第幾周
    ??? public static int getWeekNum(int year, int month, int day) {
    ??????? java.util.Date utilDate = new java.util.Date(year + "/" + month + "/" + day);
    ??????? return getWeekNum(utilDate);
    ??? }

    ??? //第幾周
    ??? public static int getWeekNum(java.util.Date utilDate) {
    ??????? Calendar cal = Calendar.getInstance(TimeZone.getDefault(),
    ??????????????? new Locale("zh", "CN"));
    ??????? cal.setTime(utilDate);
    ??????? return cal.get(Calendar.WEEK_OF_MONTH);
    ??? }

    ??? //上下半年
    ??? public static int getHalfYearNum(int month) {
    ??????? if (month < 7) return 0;
    ??????? return 1;
    ??? }

    }

    posted on 2006-09-12 10:41 FisherWang 閱讀(157) 評論(0)  編輯  收藏


    只有注冊用戶登錄后才能發表評論。


    網站導航:
     

    導航

    統計

    常用鏈接

    留言簿(1)

    隨筆檔案

    文章檔案

    MyLink

    最新隨筆

    搜索

    積分與排名

    最新評論

    主站蜘蛛池模板: 亚洲精品天堂无码中文字幕| 亚洲色图综合网站| 最近2019中文字幕mv免费看| 在线观看亚洲人成网站| 久久精品无码精品免费专区| 亚洲国产精品无码久久久秋霞2| 亚洲精品国产国语| 成人人免费夜夜视频观看| 亚洲狠狠成人综合网| 日韩在线免费播放| 91亚洲精品第一综合不卡播放| 99在线视频免费| 中中文字幕亚洲无线码| 国产亚洲精品免费视频播放| 亚洲精品国产精品乱码视色| 无码午夜成人1000部免费视频| 久久久久亚洲av无码专区喷水| 一级**爱片免费视频| 亚洲精品成人无限看| 亚洲免费在线视频观看| 亚洲精品二区国产综合野狼| 91精品全国免费观看含羞草| 亚洲妇女水蜜桃av网网站| 成人爱做日本视频免费| 黄色视频在线免费观看| 久久水蜜桃亚洲av无码精品麻豆| 无人在线直播免费观看| 亚洲av无码av制服另类专区| 和老外3p爽粗大免费视频| 亚洲人成影院在线| 黄网址在线永久免费观看 | 亚洲日产无码中文字幕| 91大神在线免费观看| 亚洲人成色77777在线观看| 在线日韩日本国产亚洲| 黄色成人免费网站| 久久亚洲国产精品成人AV秋霞 | 51在线视频免费观看视频| 亚洲一区二区中文| 男女交性永久免费视频播放| av永久免费网站在线观看|