#.java 时间工具类

来源:互联网 发布:百度一下淘宝网裤子 编辑:程序博客网 时间:2024/05/22 10:53

import java.io.File;
import java.io.IOException;
import java.net.URLEncoder;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.Locale;
import java.util.regex.Matcher;
import java.util.regex.Pattern;


import javax.servlet.http.HttpServletRequest;


import org.apache.commons.lang.StringUtils;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;


import com.trs.gab.beans.AppPhrasseDataResult;
import com.trs.gab.beans.DicDataModel;


import sun.misc.UCEncoder;
/**
 * 时间工具类
 *
 */
public class DateUtil {


    /**
     * 返回数据库中以'YYYY-MM-DD HH24:MI:SS'格式表示当前时间的字符串
     * 用法:to_date(?,'YYYY-MM-DD HH24:MI:SS')
     * ?设置strNowtime
     * @return
     */
    public static String getNowTimeStr(){
        Calendar m_cal = Calendar.getInstance();
        String strNowtime = m_cal.get(Calendar.YEAR) + "-"
                + (m_cal.get(Calendar.MONTH) + 1) + "-"
                + m_cal.get(Calendar.DAY_OF_MONTH) + " "
                + m_cal.get(Calendar.HOUR_OF_DAY) + ":"
                + m_cal.get(Calendar.MINUTE) + ":" + m_cal.get(Calendar.SECOND);
        return strNowtime;
    }


    /**
     * 获得当前时间,格式yyyy-MM-dd hh:mm:ss
     *
     * @param format
     * @return
     */
    public static String getCurrentDateTime() {
        return getCurrentDate("yyyy-MM-dd HH:mm:ss");
    }


    /**
     * 获得当前时间,格式自定义
     *
     * @param format
     * @return
     */
    public static String getCurrentDate(String format) {
        Calendar day = Calendar.getInstance();
        day.add(Calendar.DATE, 0);
        SimpleDateFormat sdf = new SimpleDateFormat(format);// "yyyy-MM-dd"
        String date = sdf.format(day.getTime());
        return date;
    }


    /**
     * 获得昨天时间,格式自定义
     *
     * @param format
     * @return
     */
    public static String getYesterdayDate(String format) {
        Calendar day = Calendar.getInstance();
        day.add(Calendar.DATE, -1);
        SimpleDateFormat sdf = new SimpleDateFormat(format);// "yyyy-MM-dd"
        String date = sdf.format(day.getTime());
        return date;
    }


    /**
     * @param date1
     *            需要比较的时间 不能为空(null),需要正确的日期格式 ,如:2009-09-12
     * @param date2
     *            被比较的时间 为空(null)则为当前时间
     * @param stype
     *            返回值类型 0为多少天,1为多少个月,2为多少年
     * @return 举例: compareDate("2009-09-12", null, 0);//比较天
     *         compareDate("2009-09-12", null, 1);//比较月
     *         compareDate("2009-09-12", null, 2);//比较年
     */
    public static int compareDate(String startDay, String endDay, int stype) {
        int n = 0;
        String[] u = { "天", "月", "年" };
        String formatStyle = stype == 1 ? "yyyy-MM" : "yyyy-MM-dd";


        endDay = endDay == null ? getCurrentDate("yyyy-MM-dd") : endDay;


        DateFormat df = new SimpleDateFormat(formatStyle);
        Calendar c1 = Calendar.getInstance();
        Calendar c2 = Calendar.getInstance();
        try {
            c1.setTime(df.parse(startDay));
            c2.setTime(df.parse(endDay));
        } catch (Exception e3) {
            System.out.println("wrong occured");
        }
        // List list = new ArrayList();
        while (!c1.after(c2)) { // 循环对比,直到相等,n 就是所要的结果
            // list.add(df.format(c1.getTime())); // 这里可以把间隔的日期存到数组中 打印出来
            n++;
            if (stype == 1) {
                c1.add(Calendar.MONTH, 1); // 比较月份,月份+1
            } else {
                c1.add(Calendar.DATE, 1); // 比较天数,日期+1
            }
        }
        n = n - 1;
        if (stype == 2) {
            n = (int) n / 365;
        }
        // System.out.println(startDay+" -- "+endDay+" 相差多少"+u[stype]+":"+n);
        return n;
    }


    /**
     * 判断时间是否符合时间格式
     */
    public static boolean isLegalDateString(String date, String dateFormat) {
        if (date != null) {
            java.text.SimpleDateFormat format = new java.text.SimpleDateFormat(
                    dateFormat);
            format.setLenient(false);
            try {
                format.format(format.parse(date));
            } catch (ParseException e) {
                return false;
            }
            return true;
        }
        return false;
    }


    /**
     * 实现给定某日期,判断是星期几 date:必须yyyy-MM-dd格式
     */
    public static String getWeekday(String date) {
        SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd");
        SimpleDateFormat sdw = new SimpleDateFormat("E");
        Date d = null;
        try {
            d = sd.parse(date);
        } catch (ParseException e) {
            e.printStackTrace();
        }
        return sdw.format(d);
    }


    /**
     * 用来全局控制 上一周,本周,下一周的周数变化
     */
    private static int weeks = 0;


    /**
     * 获得当前日期与本周一相差的天数
     */
    private static int getMondayPlus() {
        Calendar cd = Calendar.getInstance();
        // 获得今天是一周的第几天,星期日是第一天,星期二是第二天......
        int dayOfWeek = cd.get(Calendar.DAY_OF_WEEK);
        if (dayOfWeek == 1)
            return -6;
        else
            return 2 - dayOfWeek;
    }


    /**
     * 获得本周星期一的日期
     */
    public static String getCurrentMonday(String format) {
        weeks = 0;
        int mondayPlus = getMondayPlus();
        Calendar currentDate = Calendar.getInstance();
        currentDate.add(Calendar.DATE, mondayPlus);
        SimpleDateFormat sdf = new SimpleDateFormat(format);// "yyyy-MM-dd"
        String date = sdf.format(currentDate.getTime());
        return date;
    }


    /**
     * 获得上周星期一的日期
     */
    public static String getPreviousMonday(String format) {
        weeks--;
        int mondayPlus = getMondayPlus();
        Calendar currentDate = Calendar.getInstance();
        currentDate.add(GregorianCalendar.DATE, mondayPlus + 7 * weeks);
        SimpleDateFormat sdf = new SimpleDateFormat(format);// "yyyy-MM-dd"
        String date = sdf.format(currentDate.getTime());
        return date;
    }


    /**
     * 获得下周星期一的日期
     */
    public static String getNextMonday(String format) {
        weeks++;
        int mondayPlus = getMondayPlus();
        // GregorianCalendar currentDate = new GregorianCalendar();
        Calendar currentDate = Calendar.getInstance();
        currentDate.add(GregorianCalendar.DATE, mondayPlus + 7 * weeks);
        SimpleDateFormat sdf = new SimpleDateFormat(format);// "yyyy-MM-dd"
        String date = sdf.format(currentDate.getTime());
        return date;
    }


    /**
     * 获得相应周的周日的日期 此方法必须写在getCurrentMonday,getPreviousMonday或getNextMonday方法之后
     */
    public static String getSunday(String format) {
        int mondayPlus = getMondayPlus();
        Calendar currentDate = Calendar.getInstance();
        currentDate.add(Calendar.DATE, mondayPlus + 7 * weeks + 6);
        SimpleDateFormat sdf = new SimpleDateFormat(format);// "yyyy-MM-dd"
        String date = sdf.format(currentDate.getTime());
        return date;
    }


    /**
     * method 将字符串类型的日期转换为一个timestamp(时间戳记java.sql.Timestamp)
     *
     * @param dateString
     *            需要转换为timestamp的字符串
     * @return dataTime timestamp
     */
    public final static java.sql.Timestamp string2Time(String dateString) {
        DateFormat dateFormat;
        dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.ENGLISH);// 设定格式
        dateFormat.setLenient(false);
        java.util.Date date = null;
        try {
            date = dateFormat.parse(dateString);
        } catch (ParseException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        // java.sql.Timestamp dateTime = new java.sql.Timestamp(date.getTime());
        return new java.sql.Timestamp(date.getTime());// Timestamp类型,timeDate.getTime()返回一个long型
    }


    /**
     * method 将字符串类型的日期转换为一个Date(java.sql.Date)
     *
     * @param dateString
     *            需要转换为Date的字符串
     * @return dataTime Date
     */
    public final static java.sql.Date string2Date(String dateString) {
        DateFormat dateFormat;
        dateFormat = new SimpleDateFormat("yyyy-MM-dd", Locale.ENGLISH);
        dateFormat.setLenient(false);
        java.util.Date date = null;
        try {
            date = dateFormat.parse(dateString);
        } catch (ParseException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        // java.sql.Date dateTime = new java.sql.Date(date.getTime());// sql类型
        return new java.sql.Date(date.getTime());
    }


    // 记录考勤, 记录迟到、早退时间
    public static String getState() {
        String state = "正常";
        DateFormat df = new SimpleDateFormat("HH:mm:ss");
        Date d = new Date();
        try {
            Date d1 = df.parse("08:00:00");
            Date d2 = df.parse(df.format(d));
            Date d3 = df.parse("18:00:00");


            int t1 = (int) d1.getTime();
            int t2 = (int) d2.getTime();
            int t3 = (int) d3.getTime();
            if (t2 < t1) {


                long between = (t1 - t2) / 1000;// 除以1000是为了转换成秒
                long hour1 = between % (24 * 3600) / 3600;
                long minute1 = between % 3600 / 60;


                state = "迟到 :" + hour1 + "时" + minute1 + "分";


            } else if (t2 < t3) {
                long between = (t3 - t2) / 1000;// 除以1000是为了转换成秒
                long hour1 = between % (24 * 3600) / 3600;
                long minute1 = between % 3600 / 60;
                state = "早退 :" + hour1 + "时" + minute1 + "分";
            }
            return state;
        } catch (Exception e) {
            return state;
        }


    }


    /**
     * 数值型的时间改为字符串型时间
     *
     * @param time
     * @return
     */
    public static String getTime(long time) {
        try {
            Date date = new Date(time);
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//
            String strdate = sdf.format(date);
            return strdate;
        } catch (Exception e) {
            e.printStackTrace();
            return "0";
        }
    }


    /**
     * 传入"yyyy-MM-dd HH:mm:ss"格式字符串,传出从1970 年~~~  至dateString表示时刻之间的ms。
     * @return
     */
    public static long getTimeMillis(String dateString){
        long timeMillis = 0;
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        try {
            Date date= sdf.parse(dateString);
            timeMillis = date.getTime();
        } catch (ParseException e) {
        }
        return timeMillis;
    }


    /**
     * 获得后N天的时间,格式自定义
     *
     * @param format
     * @return
     */
    public static String getDelayDayDate(String format,int delay) {
        Calendar day = Calendar.getInstance();
        day.add(Calendar.DATE, delay);
        SimpleDateFormat sdf = new SimpleDateFormat(format);// "yyyy-MM-dd"
        String date = sdf.format(day.getTime());
        return date;
    }


    /**
     * 获得后N小时的时间,格式自定义
     * @param format
     * @param delay
     * @return
     */
    public static String getDelayHourDate(String format,int delay){
        Calendar day = Calendar.getInstance();
        day.add(Calendar.HOUR, delay);
        SimpleDateFormat sdf = new SimpleDateFormat(format);// "yyyy-MM-dd"
        String date = sdf.format(day.getTime());
        return date;
    }


    /**
     * @param date1
     *            需要比较的时间 不能为空(null),需要正确的日期格式 ,如:2009-09-12 16:24
     * @param date2
     *            被比较的时间 为空(null)则为当前时间
     * @param stype 0为比较小时,1为比较分钟。
     * @return
     */
    public static int compareTime(String startDay, String endDay,int stype) {
        int n = 0;
        String formatStyle = "yyyy-MM-dd HH:mm";


        endDay = endDay == null ? getCurrentDate("yyyy-MM-dd HH:mm") : endDay;


        DateFormat df = new SimpleDateFormat(formatStyle);
        Calendar c1 = Calendar.getInstance();
        Calendar c2 = Calendar.getInstance();
        try {
            c1.setTime(df.parse(startDay));
            c2.setTime(df.parse(endDay));
        } catch (Exception e3) {
            System.out.println("wrong occured");
        }
        // List list = new ArrayList();
        while (!c1.after(c2)) { // 循环对比,直到相等,n 就是所要的结果
            // list.add(df.format(c1.getTime())); // 这里可以把间隔的日期存到数组中 打印出来
            n++;
            if(stype == 0){
                c1.add(Calendar.HOUR, 1); // 比较月份,月份+1
            }else{
                c1.add(Calendar.MINUTE, 1); // 比较月份,月份+1
            }
        }
        n = n - 1;
        return n;
    }
    /**
     * 获取词典(牛津英汉词典)音标的信息
     */
    public static String getYin(String content)
    {
        String result="";
        String reg="<font color=([\"'])#F17D1F([\"']) size=4>(?:.*?)</font>";
        //String str="<td class=\"longtd\" title=\"VRBZ3\">VRBZ3</td>";
        String str="<font color=red>china</font><font color=green>china</font>";
        Pattern p=Pattern.compile(reg);
        Matcher m=p.matcher(content);
        int i=1;
        while(m.find()){
            System.out.println(m.group(0));
            result=result+"<br>"+"<font color=#F17D1F>"+i+"</font>"+m.group(0).replaceAll("size=4", "style=\"font-family:Arial Unicode Ms\";");
            i++;
        }
        if(i==2)
        {
            String r="<font color=#F17D1F>";
            int x=result.indexOf(r);
            result=result.substring(x+r.length()+1);
        }
        return result;
    }
    /**
     * 获取词典(字典)中的信息、
     */
    public static String getFont(String content)
    {
        String result="";
        String reg="(?:.*?)<br>";
        //String str="<td class=\"longtd\" title=\"VRBZ3\">VRBZ3</td>";
        String str="你<br>nǐ<br>称对方,多称指一个人,有时也指称若干人:你厂。你方。<br>泛指任何人:你死我活。<br>您<br><br>笔画数:7;<br>部首:亻;<br>笔顺编号:3235234<br><br><br>";
        Pattern p=Pattern.compile(reg);
        Matcher m=p.matcher(content);
        int i=1;
        while(m.find()){
            System.out.println(m.group(0));
            if(!m.group(0).equals("<br>"))
            {
            result=result+i+"、   "+m.group(0);
            i++;
            }


        }


        return result;
    }
    public static String getDemo(String color,String content)
    {
        String result="";
        String reg="<font color="+color+">(?:.*?)</font>";
        //String str="<td class=\"longtd\" title=\"VRBZ3\">VRBZ3</td>";
        String str="<font color=red>china</font><font color=green>china</font>";
        Pattern p=Pattern.compile(reg);
        Matcher m=p.matcher(content);


        if(color.equals("blue"))
        {
            int i=1;
            while(m.find()){
                System.out.println(m.group(0));
                result=result+"<br> <font color=blue>"+i+" </font>"+m.group(0).replaceAll("size=4", "");
                i++;
            }
        }
        else
        {




            while(m.find()){
                System.out.println(m.group(0));
                result=result+"<br>"+m.group(0).replaceAll("size=4", "");


            }


        }
        return result;
    }
    public static String getUse(String content)
    {
        String result="";
        String reg="</font>(?:.*?)<br>";
        //String str="<td class=\"longtd\" title=\"VRBZ3\">VRBZ3</td>";
        String str="<font color=red>china</font><font color=green>china</font>";
        Pattern p=Pattern.compile(reg);
        Matcher m=p.matcher(content);




            while(m.find()){
                System.out.println(m.group(0));
                result=result+m.group(0).replaceAll("size=4", "");


            }




        return result;
    }
    public static String[] getContent(String content,String prefex)
    {
        String result[]=new String[3];
        String reg=prefex+"(?:.*?)</div>";
        //String str="<td class=\"longtd\" title=\"VRBZ3\">VRBZ3</td>";
        String str="<font color=red>china</font><font color=green>china</font>";
        Pattern p=Pattern.compile(reg);
        Matcher m=p.matcher(content);


        int count=0;
            while(m.find()){
                if(count<3)
                {
                    result[count]=m.group(0);
                }
                count++;
            }


        return result;
    }
    public static boolean getContent(String content,String prefex,String reg)
    {
        boolean result=false;
        Pattern p=Pattern.compile(reg);
        Matcher m=p.matcher(content);




            while(m.find()){


                result=true;
            }
            return result;
    }
    public static String getC(String content,String prefex)
    {
        System.out.println("未处理的t内容"+content);
        int start=content.indexOf(prefex);
        String result="";
        if(start!=-1)
        {
        result=content.substring(start, content.length()-1);
        return result.replaceAll("</div>","")+"</div>";
        }
        else
        {
            result=content;
            return result;
        }






    }
    public static String getContent(String content)
    {
        String s_content[]=new String[2];
        for(int i=0;i<2;i++)
        {
            s_content[i]=content;
        }
        String v=getContent(s_content[0],"<div id=v>")[0];


        String c=getContent(s_content[1],"<div id=c>")[0];
        if(!getContent(c, "<div id=c>", "[\u4E00-\u9FA5]"))
        {
            c=getC(s_content[1],"<div id=c>");
        }
        return c+v;
    }


    public static String replaceTag(String content)
    {
        return content.replaceAll("<br>", " ").replaceAll("bword://", "").replaceAll("\\\\n", "").replaceAll("<img.*>.*</img>","").replaceAll("<img.*/>","");
    }
     /**
      * 获取现在时间
      * @return返回字符串格式 yyyy-MM-dd HH:mm:ss
      */
     public static String getStringDate() {
      Date currentTime = new Date();
      SimpleDateFormat formatter = new SimpleDateFormat("M月d日");
      String dateString = formatter.format(currentTime);
      return dateString;
     }
    public static String getNum(String content)
    {
        String result="";
        String reg="(?:.*?)。";


        //String str="<td class=\"longtd\" title=\"VRBZ3\">VRBZ3</td>";
        String str="(1)在体积、面积、数量、力量、强度等方面不及一般的或不及比较的对象(跟‘大’相对):~河|鞋~了点儿|我比你~一岁|声音太~。(2)短时间地:~坐|~住。(3)排行最末的:~儿子|他是我的~弟弟。(4)年纪小的人:一家大~|上有老,下有~。(5)指妾①。(6)谦辞,称自己或与自己有关的人或事物:~弟|~店。 …小白菜@(~ ";
        Pattern p=Pattern.compile(reg);
        Matcher m=p.matcher(content);




            while(m.find()){
            if(m.group(0).length()>3)
            {
                System.out.println(m.group(0));
                result=result+m.group(0)+"<br>";
             }
            else
            {
                result=content;
            }
            }
        if(result.length()==0)
        {
            result=content;
        }


        return result;
    }
    /**
     * @param args
     * @return
     * @return
     */
    public static String getContentSource(String contentSource,String tag,String tagId,int wordSize)
    {
        Document doc;
        String linkText="";
        //System.out.println("未处理的文本内容:"+contentSource);
        try {
            doc = Jsoup.parse(contentSource);


            Element content = doc.getElementById(tagId);
            if(content!=null){
            Elements texts = content.select(tag + "[id=" + tagId + "]");
            for (Element link : texts) {


                linkText = linkText + link.text();
            }
            }
            else
            {
                Element t = doc.getElementById("t");
                if(t!=null){
                Elements texts = t.select("div[id=t]");
                for (Element link : texts) {


                    linkText = linkText + link.text();
                }
                }
                else
                {
                    linkText=contentSource;
                }
            }
        } catch (Exception e) {


            e.printStackTrace();
        }
        //System.out.println("得到的文本内容:"+linkText);
        if(linkText.length()>300)
        {
            linkText=linkText.substring(0, wordSize)+"...";
        }
        return linkText;
    }


    public static String getContentText(String contentSource,String tag,String tagId)
    {
        Document doc;
        String linkText="";
        //System.out.println("未处理的文本内容:"+contentSource);
        try {
            doc = Jsoup.parse(contentSource);


            Element content = doc.getElementById(tagId);
            if(content!=null){
            Elements texts = content.select(tag + "[id=" + tagId + "]");
            for (Element link : texts) {


                linkText = linkText + link.text();
            }
            }


        } catch (Exception e) {


            e.printStackTrace();
        }
        //System.out.println("得到的文本内容:"+linkText);
        return linkText;
    }
    /**
     * 得到div id=m的内容
     * @param contentSource
     * @param tag
     * @param tagId
     * @return
     */
    public static String getContentSourceOfm(String contentSource,String tag,String tagId)
    {
        Document doc;
        String linkText="";
        //System.out.println("未处理的文本内容:"+contentSource);
        try {
            doc = Jsoup.parse(contentSource);


            Element content = doc.getElementById(tagId);
            if(content!=null){
            Elements texts = content.select(tag + "[id=" + tagId + "]");
            for (Element link : texts) {


                linkText = linkText + link.text();
            }
            }
            else
            {
                Element t = doc.getElementById("t");
                if(t!=null){
                Elements texts = t.select("div[id=t]");
                for (Element link : texts) {


                    linkText = linkText + link.text();
                }
                }
                else
                {
                    linkText=contentSource;
                }
            }
        } catch (Exception e) {


            e.printStackTrace();
        }
        //System.out.println("得到的文本内容:"+linkText);
        if(linkText.length()>300)
        {
            linkText=linkText.substring(0, 300)+"...";
        }
        return linkText;
    }
    public static boolean isHasRelativeWordlink(String content,String tag)
    {
        if(content.contains(tag))
        {
            return true;
        }
        else
        {
            return false;
        }
    }
    /**
     * 得到相关词条的解释
     * @param content
     * @param request
     * @param tag
     * @return
     */
    public static String getRelativeWordlink(String content,HttpServletRequest request,String tag)
    {
        String param[]=content.split(tag);
        //URLEncoder encoder=null;




        content="参考词条:<a href="+request.getContextPath()+"/baikeSearchRelative.trs?searchWord="+param[1].replaceAll("\\\\n", "")+"  target=\"_blank\">"+param[1].replaceAll("\\\\n", "")+"</a>";
        return content;
    }


    /**
     * 得到相关词条的解释
     * @param content
     * @param request
     * @param tag
     * @return
     */
    public static DicDataModel getRelativeWordContent(String content,String tag,int type)
    {




        String param[]=content.split(tag);
        //URLEncoder encoder=null;
        DicDataModel dataModel=null;


        AppPhrasseDataResult appPhrasseDataResult=null;


        appPhrasseDataResult=new AppPhrasseDataResult();


        try {
            dataModel=appPhrasseDataResult.getBaikeInfo("TB_BAIKE", "name="+param[1].replaceAll("\\\\n", ""));
        } catch (Exception e) {


            e.printStackTrace();
        }
        if(type==0)
        {
            dataModel.setContent(DateUtil.getContentSource(dataModel.getContent(), "", "c",300),new Boolean("true"));
        }
        else
        {


            dataModel.setContent(dataModel.getContent(),new Boolean("true"));


        }
        return dataModel;
    }
    /**
     * 将相关词条添加到字符串数组中
     * @param contentSource
     * @param request
     * @return
     */
    public static String[] getRelativeWordlink(String contentSource,HttpServletRequest request)
    {Document doc;
    String relativeWord[]=null;
    int count=0;
    try {
        doc = Jsoup.parse(contentSource);


        Element content = doc.getElementById("m");
        //Elements links = content.getElementsByTag("td");
        if(content!=null){
        Elements links = content.select("a");
        relativeWord=new String[links.size()];
        for (Element link : links) {


          String linkText = link.text();


            if(linkText.contains("@"))
            {
              relativeWord[count]=linkText;
            }
            count++;
        }
        }
    } catch (Exception e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
        return relativeWord;
    }
    /**
     * 将相关词条的细缆页链接加上
     * @param content
     * @param relativeWord
     * @param request
     * @return
     */
    public static String replaceRelativeWord(String content,String relativeWord[],HttpServletRequest request)
    {
        for(int i=0;i<relativeWord.length;i++)
        {   String c=relativeWord[i];
            if(StringUtils.isNotEmpty(c))
            {
            String r=relativeWord[i].substring(1);
            content=content.replaceFirst(r, request.getContextPath()+"/baikeSearchRelative.trs?searchWord="+r);
            }
            }
        return content;
    }
    /**
     * 得到词条的目录链接:
     * 默认取前5条链接
     * @param content
     * @return
     */
    public static String getLink(String contentSource, String linkContent,int count,String tag) {
        Document doc;
        String linkText = "";
        try {
            doc = Jsoup.parse(contentSource);


            Element content = doc.getElementById(tag);
            if(content!=null){
            Elements links = content.select("p");


                int i=1;
                for (Element link : links) {
                    String href=getChildlink(link.outerHtml());
                    if(StringUtils.isNotEmpty(href))
                    {
                   linkText = linkText +"<p>"+href+"</p>";
                    }
                   if(i==count)
                    {
                        break;
                    }


                    i++;
                }
                /*if(i<count)
                {
                    linkText = linkText+getLinkOfm(linkContent, count-i,"m");
                }*/
            }


            else
            {
                linkText=contentSource;
            }
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return linkText;
    }
    /**
     * 链接的数量不足时增加m标签的内容
     * @param contentSource
     * @param linkContent
     * @param count
     * @param tag
     * @return
     */
    public static String getLinkOfm(String linkContent,int count,String tag) {
        Document doc;
        String linkText = "";
        try {
            doc = Jsoup.parse(linkContent);


            Element content = doc.getElementById(tag);
            if(content!=null){
            Elements links = content.select("p");


                int i=0;
                for (Element link : links) {
                   linkText = linkText +"<p>"+ getChildlink(link.outerHtml())+"</p>";
                    if(i==count)
                    {
                        break;
                    }


                    i++;
                }


            }


            else
            {
                linkText=linkContent;
            }
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return linkText;
    }
    /**
     * 获取链接的子链接的第一个链接
     * @param contentSource
     * @return
     */
    public static String getChildlink(String contentSource) {


        Document doc;
        String linkText = null;
        try {
            doc = Jsoup.parse(contentSource);


            Elements links = doc.select("a");
            if (links != null) {
                int i = 0;
                for (Element link : links) {
                    if (i == 0) {
                        linkText = link.outerHtml();
                    }
                    i++;
                }
            } else {
                linkText = contentSource;
            }
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return linkText;
    }
    public static int getNowTime(int type){
        Calendar m_cal = Calendar.getInstance();
        if(type==1)
        {
            return m_cal.get(Calendar.MONTH)+1;
        }
        else
            return m_cal.get(Calendar.DAY_OF_MONTH);
    }
    public static void main(String[] args) {


    System.out.println(getContentText("<div id=t><p></div>\n","div","t"));
    }


}
0 0
原创粉丝点击