android获取星期几、农历、公历日期

package com.exi.oa.util;
import java.text.DateFormat;
import java.util.Calendar;
import java.util.Date;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Locale;
import s6.lunar.ChineseLunar;
import s6.lunar.ChineseLunar.CalElement;

public class DateUtil {
    
    static Calendar today = Calendar.getInstance();
    static ChineseLunar cl = new ChineseLunar();
    
    
    /*获取日期*/    
    public static String getDay(String date){
        String h;
        String [] day = date.split("-");        
        h = day[2];        
        return h;
    }
    
    /*获取月份*/    
    public static String getMonth(String date){
        String m;
        String [] day = date.split("-");        
        m = day[1];        
        return m;
    }
    
    /*获取年份*/    
    public static String getYear(String date){
        String y;
        String [] day = date.split("-");        
        y = day[0];
        return y;
    }
    
    /*获取当前系统时间*/
    public static String getSysDate(){
        Date date = new Date();
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日");        
        return sdf.format(date);
    }
    
    /*格式化日期时间*/
    public static String formatDatetime(Date date){
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm");
        return sdf.format(date);
    }
    
    public static String formatDatetime(String date) throws ParseException{
        DateFormat fmt = new SimpleDateFormat("yyyy年MM月dd日");
        Date d = fmt.parse(date);
        return d.toString();
    }
    
    public static String formatDatetime(String date,int forid){
        if(date == null ||"".equals(date.trim())){
            return "";
        }else{
            String str = "";
            str = date.substring(0,date.indexOf("."));
            String[] array = str.split(" ");
            String[] dates = array[0].split("-");
            switch (forid) {
            case 0:  //yyyy-MM-dd HH:mm:ss
                str = date.substring(0,date.indexOf("."));  
                break;
            case 1:  //yyyy-MM-dd
                str = date.substring(0,date.indexOf(".")); 
                str = str.substring(0,str.indexOf(" "));
                break;
            case 2:  //yyyy年MM月dd日 HH:mm:ss
                str = dates[0]+"年"+dates[1]+"月"+dates[2]+"日 "+array[1];
                break;
            case 3:  //yyyy年MM月dd日 HH:mm
                str = dates[0]+"年"+dates[1]+"月"+dates[2]+"日 "+array[1].substring(0, array[1].lastIndexOf(":"));
                break;
            case 4:  //yyyy年MM月dd日 HH:mm:ss
                str = dates[0]+"年"+dates[1]+"月"+dates[2]+"日 ";
                break;
            default:
                break;
            }
            return str;
        }
    }
    
    /*获取当前时间的毫秒*/
    public String getSysTimeMillise(){
        long i = System.currentTimeMillis();
        return String.valueOf(i);
    }
    
    /*获取星期几*/
    public static String getWeek(){
        Calendar cal = Calendar.getInstance();
        int i = cal.get(Calendar.DAY_OF_WEEK);
        switch (i) {
        case 1:
            return "星期日";
        case 2:
            return "星期一";
        case 3:
            return "星期二";
        case 4:
            return "星期三";
        case 5:
            return "星期四";
        case 6:
            return "星期五";
        case 7:
            return "星期六";
        default:
            return "";
        }
    }
    
    public static String formatCommentTime(String str){
        
        Date date = parse(str, "EEE MMM dd HH:mm:ss zzz yyyy", Locale.US);
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm");
        String dateStr = sdf.format(date);
        
        return dateStr;
    }
    
    public static Date parse(String str, String pattern, Locale locale) {
        if(str == null || pattern == null) {
            return null;
        }
        try {
            return new SimpleDateFormat(pattern, locale).parse(str);
        } catch (ParseException e) {
            e.printStackTrace();
        }
        return null;
    }
    
    
    /*public void getChinaDate(){
        Calendar today = Calendar.getInstance();
        ChineseLunar cl = new ChineseLunar();
        cl.calc(today.get(Calendar.YEAR), today.get(Calendar.MONTH));
        CalElement e = cl.getToday();
        
        StringBuffer sb = new StringBuffer();
        if (!"".equals(e.solarTerms)) {
            sb.append(e.solarTerms);
        }

        if (!"".equals(e.solarFestival)) {
            sb.append(e.solarFestival);
        }

        if (!"".equals(e.lunarFestival)) {
            sb.append(e.lunarFestival);
        }
        
        System.out.println("公历:");
        System.out.println(e.sYear + "年" + e.sMonth + "月" + e.sDay + "日");
        
        System.out.println("农历:");
        System.out.println(e.lYear + "年" + e.lMonth + "月" + e.lDay + "日");
        System.out.println(sb.toString());
    }*/
    
    
    public static String getNlMinYear(){
        cl.calc(today.get(Calendar.YEAR), today.get(Calendar.MONTH));
        CalElement e = cl.getToday();
        
        StringBuffer sb = new StringBuffer();
        if (!"".equals(e.solarTerms)) {
            sb.append(e.solarTerms);
        }

        if (!"".equals(e.solarFestival)) {
            sb.append(e.solarFestival);
        }

        if (!"".equals(e.lunarFestival)) {
            sb.append(e.lunarFestival);
        }
        return String.valueOf(e.lYear);
    }
    
    public static int getNlMinMonth(){
        cl.calc(today.get(Calendar.YEAR), today.get(Calendar.MONTH));
        CalElement e = cl.getToday();
        
        StringBuffer sb = new StringBuffer();
        if (!"".equals(e.solarTerms)) {
            sb.append(e.solarTerms);
        }

        if (!"".equals(e.solarFestival)) {
            sb.append(e.solarFestival);
        }

        if (!"".equals(e.lunarFestival)) {
            sb.append(e.lunarFestival);
        }
        return e.lMonth;
    }
    
    public static int getNlMinDay(){
        
        cl.calc(today.get(Calendar.YEAR), today.get(Calendar.MONTH));
        CalElement e = cl.getToday();
        StringBuffer sb = new StringBuffer();
        if (!"".equals(e.solarTerms)) {
            sb.append(e.solarTerms);
        }

        if (!"".equals(e.solarFestival)) {
            sb.append(e.solarFestival);
        }

        if (!"".equals(e.lunarFestival)) {
            sb.append(e.lunarFestival);
        }
        return e.lDay;
    }
    
    
    //农历月份
    static String[] nlMonth = {"正","二","三","四","五","六","七","八","九","十","十一","十二"};
    
    //农历日
    static String[] nlday = {"初一","初二","初三","初四","初五","初六","初七","初八","初九","初十",
            "十一","十二","十三","十四","十五","十六","十七","十八","十九","二十",
            "廿一","廿二","廿三","廿四","廿五","廿六","廿七","廿八","廿九","三十"};
    
    //农历天干
    String[] mten={"null","甲","乙","丙","丁","戊","己","庚","辛","壬","癸"};
    
    //农历地支
    String[] mtwelve={"null","子(鼠)","丑(牛)","寅(虎)","卯(兔)","辰(龙)",
            "巳(蛇)","午(马)","未(羊)","申(猴)","酉(鸡)","戌(狗)","亥(猪)"};
    
    public static String convertNlYear(String year){
        String maxYear = "";
        for(int i = 0; i < year.length(); i++){
            maxYear = maxYear + minCaseMax(year.substring(i,i+1));
        }
        return maxYear;
    }
    
    public static String convertNlMoeth(int month){
        String maxMonth = "";
        maxMonth = nlMonth[month - 1];
        return maxMonth;
    }
    
    public static String convertNlDay(int day){
        String maxDay = "";
        maxDay = nlday[day - 1];
        return maxDay;
    }
    
    public static String minCaseMax(String str){
        switch (Integer.parseInt(str)) {
        case 0:
            return "零";
        case 1:
            return "一";
        case 2:
            return "二";
        case 3:
            return "三";
        case 4:
            return "四";
        case 5:
            return "五";
        case 6:
            return "六";
        case 7:
            return "七";
        case 8:
            return "八";
        case 9:
            return "九";

        default:
            return "null";
        }
    }
    
    public static String getNlDate(){
        String year = convertNlYear(getNlMinYear());
        String month = convertNlMoeth(getNlMinMonth());
        String day = convertNlDay(getNlMinDay());
        return year+ " 年 " + month + "月 " + day;
    }
    
}

 

posted @ 2013-11-25 10:36  Yang2  阅读(10390)  评论(1编辑  收藏  举报