1.  /** 
  2.   * 根据一个日期,返回是星期几的字符串 
  3.   *  
  4.   * @param sdate 
  5.   * @return 
  6.   */  
  7.  public static String getWeek(String sdate) {  
  8.   // 再转换为时间  
  9.   Date date = VeDate.strToDate(sdate);  
  10.   Calendar c = Calendar.getInstance();  
  11.   c.setTime(date);  
  12.   // int hour=c.get(Calendar.DAY_OF_WEEK);  
  13.   // hour中存的就是星期几了,其范围 1~7  
  14.   // 1=星期日 7=星期六,其他类推  
  15.   return new SimpleDateFormat("EEEE").format(c.getTime());  
  16.  }  
  17.  public static String getWeekStr(String sdate){  
  18.   String str = "";  
  19.   str = VeDate.getWeek(sdate);  
  20.   if("1".equals(str)){  
  21.    str = "星期日";  
  22.   }else if("2".equals(str)){  
  23.    str = "星期一";  
  24.   }else if("3".equals(str)){  
  25.    str = "星期二";  
  26.   }else if("4".equals(str)){  
  27.    str = "星期三";  
  28.   }else if("5".equals(str)){  
  29.    str = "星期四";  
  30.   }else if("6".equals(str)){  
  31.    str = "星期五";  
  32.   }else if("7".equals(str)){  
  33.    str = "星期六";  
  34.   }  
  35.   return str;  
  36.  }  
  37.   
  38.  /** 
  39.   * 两个时间之间的天数 
  40.   *  
  41.   * @param date1 
  42.   * @param date2 
  43.   * @return 
  44.   */  
  45.  public static long getDays(String date1, String date2) {  
  46.   if (date1 == null || date1.equals(""))  
  47.    return 0;  
  48.   if (date2 == null || date2.equals(""))  
  49.    return 0;  
  50.   // 转换为标准时间  
  51.   SimpleDateFormat myFormatter = new SimpleDateFormat("yyyy-MM-dd");  
  52.   java.util.Date date = null;  
  53.   java.util.Date mydate = null;  
  54.   try {  
  55.    date = myFormatter.parse(date1);  
  56.    mydate = myFormatter.parse(date2);  
  57.   } catch (Exception e) {  
  58.   }  
  59.   long day = (date.getTime() - mydate.getTime()) / (24 * 60 * 60 * 1000);  
  60.   return day;  
  61.  }  
  62.   
  63.  /** 
  64.   * 形成如下的日历 , 根据传入的一个时间返回一个结构 星期日 星期一 星期二 星期三 星期四 星期五 星期六 下面是当月的各个时间 
  65.   * 此函数返回该日历第一行星期日所在的日期 
  66.   *  
  67.   * @param sdate 
  68.   * @return 
  69.   */  
  70.  public static String getNowMonth(String sdate) {  
  71.   // 取该时间所在月的一号  
  72.   sdate = sdate.substring(08) + "01";  
  73.   
  74.   // 得到这个月的1号是星期几  
  75.   Date date = VeDate.strToDate(sdate);  
  76.   Calendar c = Calendar.getInstance();  
  77.   c.setTime(date);  
  78.   int u = c.get(Calendar.DAY_OF_WEEK);  
  79.   String newday = VeDate.getNextDay(sdate, (1 - u) + "");  
  80.   return newday;  
  81.  }  
  82.   
  83.  /** 
  84.   * 取得数据库主键 生成格式为yyyymmddhhmmss+k位随机数 
  85.   *  
  86.   * @param k 
  87.   *            表示是取几位随机数,可以自己定 
  88.   */  
  89.   
  90.  public static String getNo(int k) {  
  91.   
  92.   return getUserDate("yyyyMMddhhmmss") + getRandom(k);  
  93.  }  
  94.   
  95.  /** 
  96.   * 返回一个随机数 
  97.   *  
  98.   * @param i 
  99.   * @return 
  100.   */  
  101.  public static String getRandom(int i) {  
  102.   Random jjj = new Random();  
  103.   // int suiJiShu = jjj.nextInt(9);  
  104.   if (i == 0)  
  105.    return "";  
  106.   String jj = "";  
  107.   for (int k = 0; k < i; k++) {  
  108.    jj = jj + jjj.nextInt(9);  
  109.   }  
  110.   return jj;  
  111.  }  
  112.   
  113.  /** 
  114.   *  
  115.   * @param args 
  116.   */  
  117.  public static boolean RightDate(String date) {  
  118.   
  119.   SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");  
  120.   ;  
  121.   if (date == null)  
  122.    return false;  
  123.   if (date.length() > 10) {  
  124.    sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");  
  125.   } else {  
  126.    sdf = new SimpleDateFormat("yyyy-MM-dd");  
  127.   }  
  128.   try {  
  129.    sdf.parse(date);  
  130.   } catch (ParseException pe) {  
  131.    return false;  
  132.   }  
  133.   return true;  
  134.  }  
  135.   
  136.  /*************************************************************************** 
  137.   * //nd=1表示返回的值中包含年度 //yf=1表示返回的值中包含月份 //rq=1表示返回的值中包含日期 //format表示返回的格式 1 
  138.   * 以年月日中文返回 2 以横线-返回 // 3 以斜线/返回 4 以缩写不带其它符号形式返回 // 5 以点号.返回 
  139.   **************************************************************************/  
  140.  public static String getStringDateMonth(String sdate, String nd, String yf, String rq, String format) {  
  141.   Date currentTime = new Date();  
  142.   SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");  
  143.   String dateString = formatter.format(currentTime);  
  144.   String s_nd = dateString.substring(04); // 年份  
  145.   String s_yf = dateString.substring(57); // 月份  
  146.   String s_rq = dateString.substring(810); // 日期  
  147.   String sreturn = "";  
  148.   roc.util.MyChar mc = new roc.util.MyChar();  
  149.   if (sdate == null || sdate.equals("") || !mc.Isdate(sdate)) { // 处理空值情况  
  150.    if (nd.equals("1")) {  
  151.     sreturn = s_nd;  
  152.     // 处理间隔符  
  153.     if (format.equals("1"))  
  154.      sreturn = sreturn + "年";  
  155.     else if (format.equals("2"))  
  156.      sreturn = sreturn + "-";  
  157.     else if (format.equals("3"))  
  158.      sreturn = sreturn + "/";  
  159.     else if (format.equals("5"))  
  160.      sreturn = sreturn + ".";  
  161.    }  
  162.    // 处理月份  
  163.    if (yf.equals("1")) {  
  164.     sreturn = sreturn + s_yf;  
  165.     if (format.equals("1"))  
  166.      sreturn = sreturn + "月";  
  167.     else if (format.equals("2"))  
  168.      sreturn = sreturn + "-";  
  169.     else if (format.equals("3"))  
  170.      sreturn = sreturn + "/";  
  171.     else if (format.equals("5"))  
  172.      sreturn = sreturn + ".";  
  173.    }  
  174.    // 处理日期  
  175.    if (rq.equals("1")) {  
  176.     sreturn = sreturn + s_rq;  
  177.     if (format.equals("1"))  
  178.      sreturn = sreturn + "日";  
  179.    }  
  180.   } else {  
  181.    // 不是空值,也是一个合法的日期值,则先将其转换为标准的时间格式  
  182.    sdate = roc.util.RocDate.getOKDate(sdate);  
  183.    s_nd = sdate.substring(04); // 年份  
  184.    s_yf = sdate.substring(57); // 月份  
  185.    s_rq = sdate.substring(810); // 日期  
  186.    if (nd.equals("1")) {  
  187.     sreturn = s_nd;  
  188.     // 处理间隔符  
  189.     if (format.equals("1"))  
  190.      sreturn = sreturn + "年";  
  191.     else if (format.equals("2"))  
  192.      sreturn = sreturn + "-";  
  193.     else if (format.equals("3"))  
  194.      sreturn = sreturn + "/";  
  195.     else if (format.equals("5"))  
  196.      sreturn = sreturn + ".";  
  197.    }  
  198.