package com.jw.app.business.utils;

import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.StringTokenizer;

import java.util.GregorianCalendar;

/**
 * 
 * @author Administrator
 * 
 */
	
public class DateTools {
	
	private static Date nowDate=null;
	
    public DateTools() {
    }

    public static String getServerDateTime() {
    	 SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 
			String time =df.format(new Date()) +" "+ System.nanoTime(); 
    	return time;
        }
    /**
     * ȡ��ϵͳʱ��
     * 
     * @param Kind
     *            ����ֵ������ 1: yyyyMMdd 2: yyyy/MM/dd 3: hhmmss 4: hh:mm:ss
     *            5:yyyyMMdd hhmmss 6: yyyy/MM/dd hh:mm:ss 7:
     *            yyyy/MM/dd|hh:mm:ss 8: yyyyMMddhhmmss 9: yyyy-MM-dd 10:
     *            yyyy-MM-dd hh:mm:ss 11:yyyy��MM��dd�� 12:yyyy 13:MMdd
     * @return ϵͳʱ��
     * @throws Exception
     *             �쳣
     */
    public static String getServerDateTime(int Kind) {
	SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd-HH-mm-ss");
	Date currentTime = new java.util.Date();
	String strDate = formatter.format(currentTime);
	StringTokenizer token = new StringTokenizer(strDate, "-");
	String year = token.nextToken();
	String month = token.nextToken();
	String day = token.nextToken();
	String hh = token.nextToken();
	String mm = token.nextToken();
	String ss = token.nextToken();
	String strServerDateTime = "";
	switch (Kind) {
	case 1:
	    strServerDateTime = year + month + day;
	    break;
	case 2:
	    strServerDateTime = year + "/" + month + "/" + day;
	    break;
	case 3:
	    strServerDateTime = hh + mm + ss;
	    break;
	case 4:
	    strServerDateTime = hh + ":" + mm + ":" + ss;
	    break;
	case 5:
	    strServerDateTime = year + month + day + " " + hh + mm + ss;
	    break;
	case 6:
	    strServerDateTime = year + "/" + month + "/" + day + " " + hh + ":"
		    + mm + ":" + ss;
	    break;
	case 7:
	    strServerDateTime = year + "/" + month + "/" + day + "|" + hh + ":"
		    + mm + ":" + ss;
	    break;
	case 8:
	    strServerDateTime = year + month + day + hh + mm + ss;
	    break;
	case 9:
	    strServerDateTime = year + "-" + month + "-" + day;
	    break;
	case 10:
	    strServerDateTime = year + "-" + month + "-" + day + " " + hh + ":"
		    + mm + ":" + ss;
	    break;
	case 11:
	    strServerDateTime = year + "��" + month + "��" + day + "��";
	    break;
	case 12:
	    strServerDateTime = year;
	    break;
	case 13:
	    strServerDateTime = month + day;
	    break;
	case 14:
	    strServerDateTime = hh;
	    break;
	case 15:
	    strServerDateTime = year + month;
	    break;
	case 16:
	    strServerDateTime = hh + ":"+ mm;
	    break;
	case 17:
	    strServerDateTime = month;
	    break;
	default:
	    break;
	}
	return strServerDateTime;
    }

    /**
     * ȡ��ij�����ڶεĿ�ʼ����
     * 
     * @param Kind
     *            ����ֵ������ 1: ���� 2: ���� 3: ���� 4: ���� 5: ���� 6: ���� 7: ���� 8: ���� 9: ����
     * @return ��ʼ���� ��ʽ��yyyy-MM-dd 00:00:00
     */
    public static String getDateFrom(int kind) {
	if (kind == 1) { // ����
	    return getTodayFrom();
	}
	if (kind == 2) { // ����
	    return getYestodayFrom();
	}
	if (kind == 3) { // ����
	    return getNextdayFrom();
	}
	if (kind == 4) { // ����
	    return getWeekFrom();
	}
	if (kind == 5) { // ����
	    return getPreWeekFrom();
	}
	if (kind == 6) { // ����
	    return getNextWeekFrom();
	}
	if (kind == 7) { // ����
	    return getMonthFrom();
	}
	if (kind == 8) { // ����
	    return getPreMonthFrom();
	}
	if (kind == 9) { // ����
	    return getNextMonthFrom();
	}
	return "";
    }

    /**
     * ȡ��ij�����ڶεĽ�������
     * 
     * @param Kind
     *            ����ֵ������ 1: ���� 2: ���� 3: ���� 4: ���� 5: ���� 6: ���� 7: ���� 8: ���� 9: ����
     * @return �������� ��ʽ��yyyy-MM-dd "23:59:59"
     */
    public static String getDateTo(int kind) {
	if (kind == 1) { // ����
	    return getTodayTo();
	}
	if (kind == 2) { // ����
	    return getYestodayTo();
	}
	if (kind == 3) { // ����
	    return getNextdayTo();
	}
	if (kind == 4) { // ����
	    return getWeekTo();
	}
	if (kind == 5) { // ����
	    return getPreWeekTo();
	}
	if (kind == 6) { // ����
	    return getNextWeekTo();
	}
	if (kind == 7) { // ����
	    return getMonthTo();
	}
	if (kind == 8) { // ����
	    return getPreMonthTo();
	}
	if (kind == 9) { // ����
	    return getNextMonthTo();
	}
	return "";
    }
    
    /**
     * ��ݴ��������,�Լ�X�õ�X��������
     * 
     * @return ���� ��ʽ��yyyy-MM-dd
     */
    public static String getAfterDate (String date,int several) throws Exception
    {
    	//Date now = new Date();
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
		//System.out.println("Now Date is-->" + sdf.format(now));
		Calendar cal = Calendar.getInstance();
		cal.setTime(sdf.parse(date));
		long days = several;
		long timeone = cal.getTimeInMillis();
		long result = timeone + days * 24 * 60 * 60 * 1000;
		Date getDate = new Date(result);
		//System.out.println("result time-->" + sdf.format(getDate));
    	return sdf.format(getDate).toString();
    }

    /**
     * ȡ���ϸ��µĿ�ʼ����
     * 
     * @return ��ʼ���� ��ʽ��yyyy-MM-dd 00:00:00
     */
    public static String getPreMonthFrom() {
	String Last = "00:00:00";
	GregorianCalendar cal = new GregorianCalendar();
	cal.add(GregorianCalendar.MONTH, -1);
	int dayofmonth = cal.get(GregorianCalendar.DAY_OF_MONTH);
	cal.add(GregorianCalendar.DAY_OF_YEAR, 1 - dayofmonth);
	return new SimpleDateFormat("yyyy-MM-dd").format(cal.getTime()) + " "
		+ Last;
    }

    /**
     * ȡ���¸��µĿ�ʼ����
     * 
     * @return ��ʼ���� ��ʽ��yyyy-MM-dd 00:00:00
     */
    public static String getNextMonthFrom() {
	String Last = "00:00:00";
	GregorianCalendar cal = new GregorianCalendar();
	cal.add(GregorianCalendar.MONTH, +1);
	int dayofmonth = cal.get(GregorianCalendar.DAY_OF_MONTH);
	cal.add(GregorianCalendar.DAY_OF_YEAR, 1 - dayofmonth);
	return new SimpleDateFormat("yyyy-MM-dd").format(cal.getTime()) + " "
		+ Last;
    }

    /**
     * ȡ���ϸ��µĽ�������
     * 
     * @return �������� ��ʽ��yyyy-MM-dd 00:00:00
     */
    public static String getPreMonthTo() {
	String Last = "23:59:59";
	GregorianCalendar cal = new GregorianCalendar();
	int dayofmonth = cal.get(GregorianCalendar.DAY_OF_MONTH);
	cal.add(GregorianCalendar.DAY_OF_YEAR, 1 - dayofmonth - 1);
	return new SimpleDateFormat("yyyy-MM-dd").format(cal.getTime()) + " "
		+ Last;
    }

    /**
     * ȡ���¸��µĽ�������
     * 
     * @return �������� ��ʽ��yyyy-MM-dd 00:00:00
     */
    public static String getNextMonthTo() {
	String Last = "23:59:59";
	GregorianCalendar cal = new GregorianCalendar();
	cal.add(GregorianCalendar.MONTH, +2);
	int dayofmonth = cal.get(GregorianCalendar.DAY_OF_MONTH);
	cal.add(GregorianCalendar.DAY_OF_YEAR, 1 - dayofmonth - 1);
	return new SimpleDateFormat("yyyy-MM-dd").format(cal.getTime()) + " "
		+ Last;
    }

    /**
     * ȡ�ñ��µĿ�ʼ����
     * 
     * @return ��ʼ���� ��ʽ��yyyy-MM-dd 00:00:00
     */
    public static String getMonthFrom() {
	String Last = "00:00:00";
	GregorianCalendar cal = new GregorianCalendar();
	int dayofmonth = cal.get(GregorianCalendar.DAY_OF_MONTH);
	cal.add(GregorianCalendar.DAY_OF_YEAR, 1 - dayofmonth);
	return new SimpleDateFormat("yyyy-MM-dd").format(cal.getTime()) + " "
		+ Last;
    }

    /**
     * ȡ�ñ��µĽ�������
     * 
     * @return �������� ��ʽ��yyyy-MM-dd 00:00:00
     */
    public static String getMonthTo() {
	String Last = "23:59:59";
	GregorianCalendar cal = new GregorianCalendar();
	cal.add(GregorianCalendar.MONTH, 1);
	int dayofmonth = cal.get(GregorianCalendar.DAY_OF_MONTH);
	cal.add(GregorianCalendar.DAY_OF_YEAR, 1 - dayofmonth - 1);
	return new SimpleDateFormat("yyyy-MM-dd").format(cal.getTime()) + " "
		+ Last;
    }

    /**
     * ȡ�����ܵĿ�ʼ����
     * 
     * @return ��ʼ���� ��ʽ��yyyy-MM-dd 00:00:00
     */
    public static String getPreWeekFrom() {
	// 0 = Sunday, 1 = Monday, 2 = Tuesday, 3 = Wednesday, 4 = Thursday, 5 =
	// Friday, 6 = Saturday
	String Last = "00:00:00";
	GregorianCalendar cal = new GregorianCalendar();
	int dayofweek = cal.get(GregorianCalendar.DAY_OF_WEEK);
	if (dayofweek == GregorianCalendar.SUNDAY) {
	    dayofweek = GregorianCalendar.SUNDAY + 7;
	}
	cal.add(GregorianCalendar.DAY_OF_YEAR, GregorianCalendar.MONDAY
		- dayofweek - 7);

	return new SimpleDateFormat("yyyy-MM-dd").format(cal.getTime()) + " "
		+ Last;
    }

    /**
     * ȡ�����ܵĽ�������
     * 
     * @return �������� ��ʽ��yyyy-MM-dd 00:00:00
     */
    public static String getPreWeekTo() {
	// 0 = Sunday, 1 = Monday, 2 = Tuesday, 3 = Wednesday, 4 = Thursday, 5 =
	// Friday, 6 = Saturday
	String Last = "23:59:59";
	GregorianCalendar cal = new GregorianCalendar();
	int dayofweek = cal.get(GregorianCalendar.DAY_OF_WEEK);
	if (dayofweek == GregorianCalendar.SUNDAY) {
	    dayofweek = GregorianCalendar.SUNDAY + 7;
	}
	cal.add(GregorianCalendar.DAY_OF_YEAR, GregorianCalendar.MONDAY
		- dayofweek + 6 - 7);
	return new SimpleDateFormat("yyyy-MM-dd").format(cal.getTime()) + " "
		+ Last;
    }

    /**
     * ȡ�ñ��ܵĿ�ʼ����
     * 
     * @return ��ʼ���� ��ʽ��yyyy-MM-dd 00:00:00
     */
    public static String getWeekTo() {
	// 0 = Sunday, 1 = Monday, 2 = Tuesday, 3 = Wednesday, 4 = Thursday, 5 =
	// Friday, 6 = Saturday
	String Last = "23:59:59";
	GregorianCalendar cal = new GregorianCalendar();
	int dayofweek = cal.get(GregorianCalendar.DAY_OF_WEEK);
	if (dayofweek == GregorianCalendar.SUNDAY) {
	    dayofweek = GregorianCalendar.SUNDAY + 7;
	}
	cal.add(GregorianCalendar.DAY_OF_YEAR, GregorianCalendar.MONDAY
		- dayofweek + 6);
	return new SimpleDateFormat("yyyy-MM-dd").format(cal.getTime()) + " "
		+ Last;
    }

    /**
     * ȡ�ñ��ܵĽ�������
     * 
     * @return �������� ��ʽ��yyyy-MM-dd 00:00:00
     */
    public static String getWeekFrom() {
	// 0 = Sunday, 1 = Monday, 2 = Tuesday, 3 = Wednesday, 4 = Thursday, 5 =
	// Friday, 6 = Saturday
	String Last = "00:00:00";
	GregorianCalendar cal = new GregorianCalendar();
	int dayofweek = cal.get(GregorianCalendar.DAY_OF_WEEK);
	if (dayofweek == GregorianCalendar.SUNDAY) {
	    dayofweek = GregorianCalendar.SUNDAY + 7;
	}
	cal.add(GregorianCalendar.DAY_OF_YEAR, GregorianCalendar.MONDAY
		- dayofweek);
	return new SimpleDateFormat("yyyy-MM-dd").format(cal.getTime()) + " "
		+ Last;
    }

    /**
     * ȡ�����ܵĿ�ʼ����
     * 
     * @return ��ʼ���� ��ʽ��yyyy-MM-dd 00:00:00
     */
    public static String getNextWeekFrom() {
	// 0 = Sunday, 1 = Monday, 2 = Tuesday, 3 = Wednesday, 4 = Thursday, 5 =
	// Friday, 6 = Saturday
	String Last = "00:00:00";
	GregorianCalendar cal = new GregorianCalendar();
	int dayofweek = cal.get(GregorianCalendar.DAY_OF_WEEK);
	if (dayofweek == GregorianCalendar.SUNDAY) {
	    dayofweek = GregorianCalendar.SUNDAY + 7;
	}
	cal.add(GregorianCalendar.DAY_OF_YEAR, GregorianCalendar.MONDAY
		- dayofweek + 7);

	return new SimpleDateFormat("yyyy-MM-dd").format(cal.getTime()) + " "
		+ Last;
    }

    /**
     * ȡ�����ܵĽ�������
     * 
     * @return �������� ��ʽ��yyyy-MM-dd 00:00:00
     */
    public static String getNextWeekTo() {
	// 0 = Sunday, 1 = Monday, 2 = Tuesday, 3 = Wednesday, 4 = Thursday, 5 =
	// Friday, 6 = Saturday
	String Last = "23:59:59";
	GregorianCalendar cal = new GregorianCalendar();
	int dayofweek = cal.get(GregorianCalendar.DAY_OF_WEEK);
	if (dayofweek == GregorianCalendar.SUNDAY) {
	    dayofweek = GregorianCalendar.SUNDAY + 7;
	}
	cal.add(GregorianCalendar.DAY_OF_YEAR, GregorianCalendar.MONDAY
		- dayofweek + 6 + 7);
	return new SimpleDateFormat("yyyy-MM-dd").format(cal.getTime()) + " "
		+ Last;
    }

    /**
     * ȡ������Ŀ�ʼ����
     * 
     * @return ��ʼ���� ��ʽ��yyyy-MM-dd 00:00:00
     */
    public static String getYestodayFrom() {
	String Last = "00:00:00";
	GregorianCalendar cal = new GregorianCalendar();
	cal.add(GregorianCalendar.DAY_OF_YEAR, -1);
	return new SimpleDateFormat("yyyy-MM-dd").format(cal.getTime()) + " "
		+ Last;
    }

    /**
     * ȡ������Ľ�������
     * 
     * @return �������� ��ʽ��yyyy-MM-dd 00:00:00
     */
    public static String getYestodayTo() {
	String Last = "23:59:59";
	GregorianCalendar cal = new GregorianCalendar();
	cal.add(GregorianCalendar.DAY_OF_YEAR, -1);
	return new SimpleDateFormat("yyyy-MM-dd").format(cal.getTime()) + " "
		+ Last;
    }

    /**
     * ȡ�ý���Ŀ�ʼ����
     * 
     * @return ��ʼ���� ��ʽ��yyyy-MM-dd 00:00:00
     */
    public static String getTodayFrom() {
	String Last = "00:00:00";
	String now = new SimpleDateFormat("yyyy-MM-dd")
		.format(new java.util.Date());
	return now + " " + Last;
    }

    /**
     * ȡ�ý���Ľ�������
     * 
     * @return �������� ��ʽ��yyyy-MM-dd 00:00:00
     */
    public static String getTodayTo() {
	String Last = "23:59:59";
	String now = new SimpleDateFormat("yyyy-MM-dd")
		.format(new java.util.Date());
	return now + " " + Last;
    }

    /**
     * ȡ������Ŀ�ʼ����
     * 
     * @return ��ʼ���� ��ʽ��yyyy-MM-dd 00:00:00
     */
    public static String getNextdayFrom() {
	String Last = "00:00:00";
	GregorianCalendar cal = new GregorianCalendar();
	cal.add(GregorianCalendar.DAY_OF_YEAR, +1);
	return new SimpleDateFormat("yyyy-MM-dd").format(cal.getTime()) + " "
		+ Last;
    }

    /**
     * ȡ������Ľ�������
     * 
     * @return �������� ��ʽ��yyyy-MM-dd 00:00:00
     */
    public static String getNextdayTo() {
	String Last = "23:59:59";
	GregorianCalendar cal = new GregorianCalendar();
	cal.add(GregorianCalendar.DAY_OF_YEAR, +1);
	return new SimpleDateFormat("yyyy-MM-dd").format(cal.getTime()) + " "
		+ Last;
    }

    /**
     * ȡ��2��ʱ���֮���ʱ��������λΪ��
     * 
     * @param stratTime
     *            ��ʼʱ�� ��ʽ����Ϊ"HH:MM"
     * @param endTime
     *            ����ʱ�� ��ʽ����Ϊ"HH:MM"
     * @return ��������
     */
    public static String getTwoHour(String stratTime, String endTime) {
	String[] kk = null;
	String[] jj = null;
	kk = stratTime.split(":");
	jj = endTime.split(":");
	if (Integer.parseInt(kk[0]) < Integer.parseInt(jj[0]))
	    return "0";
	else {
	    double y = Double.parseDouble(kk[0]) + Double.parseDouble(kk[1])
		    / 60;
	    double u = Double.parseDouble(jj[0]) + Double.parseDouble(jj[1])
		    / 60;
	    if ((y - u) > 0)
		return y - u + "";
	    else
		return "0";
	}
    }

    /**
     * ȡ��2�����ڵ�֮������ڼ������λΪ��
     * 
     * @param stratDate
     *            ��ʼ����
     * @param endDate
     *            ��������
     * @return ���������
     */
    public static String getTwoDay(String stratDate, String endDate) {
	SimpleDateFormat myFormatter = new SimpleDateFormat("yyyy-MM-dd");
	long day = 0;
	try {
	    java.util.Date date = myFormatter.parse(stratDate);
	    java.util.Date mydate = myFormatter.parse(endDate);
	    day = (date.getTime() - mydate.getTime()) / (24 * 60 * 60 * 1000);
	} catch (Exception e) {
	    return "";
	}
	return day + "";
    }

    /**
     * �ж��Ƿ�Ϊ����
     * 
     * @param dateValue
     *            ��Ҫ�жϵ�����
     * @return true�������� false����������
     * @throws ParseException
     */
    public static boolean isLeapYear(String dateValue) throws ParseException {

	/**
	 * ��ϸ��ƣ� 1.��400��������꣬���� 2.���ܱ�4����������� 3.�ܱ�4���ͬʱ���ܱ�100�����������
	 * 4.�ܱ�4���ͬʱ�ܱ�100�����������
	 */
	Date d = strToDate(dateValue);
	GregorianCalendar gc = (GregorianCalendar) Calendar.getInstance();
	gc.setTime(d);
	int year = gc.get(Calendar.YEAR);
	if ((year % 400) == 0)
	    return true;
	else if ((year % 4) == 0) {
	    if ((year % 100) == 0)
		return false;
	    else
		return true;
	} else
	    return false;
    }

    /**
     * ���ַ��͵�����ת��Ϊ�����͵�����
     * 
     * @param dateValue
     *            ��Ҫת�����ַ�
     * @return �����͵�����
     * @throws ParseException
     */
    public static Date strToDate(String dateValue) throws ParseException {
	DateFormat format = new SimpleDateFormat("yyyy-MM-dd");
	return format.parse(dateValue);
    }

    /**
     * �ж�2�������Ƿ���ͬһ������
     * 
     * @param dateOne
     *            ����1
     * @param dateTwo
     *            ����2
     * @return true����ͬһ������ false������ͬһ������
     */
    public static boolean isSameWeekDates(Date dateOne, Date dateTwo) {
	Calendar cal1 = Calendar.getInstance();
	Calendar cal2 = Calendar.getInstance();
	cal1.setTime(dateOne);
	cal2.setTime(dateTwo);
	int subYear = cal1.get(Calendar.YEAR) - cal2.get(Calendar.YEAR);
	if (0 == subYear) {
	    if (cal1.get(Calendar.WEEK_OF_YEAR) == cal2
		    .get(Calendar.WEEK_OF_YEAR))
		return true;
	} else if (1 == subYear && 11 == cal2.get(Calendar.MONTH)) {
	    // ���12�µ����һ�ܺ�������һ�ܵĻ������һ�ܼ���������ĵ�һ��
	    if (cal1.get(Calendar.WEEK_OF_YEAR) == cal2
		    .get(Calendar.WEEK_OF_YEAR))
		return true;
	} else if (-1 == subYear && 11 == cal1.get(Calendar.MONTH)) {
	    if (cal1.get(Calendar.WEEK_OF_YEAR) == cal2
		    .get(Calendar.WEEK_OF_YEAR))
		return true;
	}
	return false;
    }

    /**
     * ȡ������Ϊ������ȵĵڼ���
     * 
     * @param dateValue
     *            ��Ҫ�жϵ�����
     * @return ���+����
     * @throws ParseException
     */
    public static String getSeqWeek(String dateValue) throws ParseException {
	Calendar c = Calendar.getInstance();
	c.setTime(strToDate(dateValue));
	String week = Integer.toString(c.get(Calendar.WEEK_OF_YEAR));
	if (week.length() == 1)
	    week = "0" + week;
	String year = Integer.toString(c.get(Calendar.YEAR));
	return year + week;
    }

    /**
     * ���һ���������ڵ��ܵ����ڼ������ڣ���Ҫ�ҳ�2011��2��3�������ܵ�����һ�Ǽ���
     * 
     * @param dateValue
     *            ����
     * @param numWeek
     *            ���ڵ��ܵ����ڼ�
     * @return ���� ��ʽ��"yyyy-MM-dd"
     * @throws ParseException
     */
    public static String getWeek(String dateValue, String numWeek)
	    throws ParseException {
	// ��ת��Ϊʱ��
	Date dd = strToDate(dateValue);
	Calendar c = Calendar.getInstance();
	c.setTime(dd);
	if (numWeek.equals("1")) // ��������һ���ڵ�����
	    c.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
	else if (numWeek.equals("2")) // �������ڶ����ڵ�����
	    c.set(Calendar.DAY_OF_WEEK, Calendar.TUESDAY);
	else if (numWeek.equals("3")) // �������������ڵ�����
	    c.set(Calendar.DAY_OF_WEEK, Calendar.WEDNESDAY);
	else if (numWeek.equals("4")) // �������������ڵ�����
	    c.set(Calendar.DAY_OF_WEEK, Calendar.THURSDAY);
	else if (numWeek.equals("5")) // �������������ڵ�����
	    c.set(Calendar.DAY_OF_WEEK, Calendar.FRIDAY);
	else if (numWeek.equals("6")) // �������������ڵ�����
	    c.set(Calendar.DAY_OF_WEEK, Calendar.SATURDAY);
	else if (numWeek.equals("0")) // �������������ڵ�����
	    c.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY);
	return new SimpleDateFormat("yyyy-MM-dd").format(c.getTime());
    }

    /**
     * ���һ�����ڣ��������ֵ����ڼ�
     * 
     * @param dateValue
     *            ����
     * @return ���ֵ����ڼ� 1=������ 7=��������������
     * @throws ParseException
     */
    public static String getWeek(String dateValue) throws ParseException {
	// ��ת��Ϊʱ��
	Date date = strToDate(dateValue);
	Calendar c = Calendar.getInstance();
	c.setTime(date);
	// int hour=c.get(Calendar.DAY_OF_WEEK);
	// hour�д�ľ������ڼ��ˣ��䷶Χ 1~7
	// 1=������ 7=��������������
	return new SimpleDateFormat("EEEE").format(c.getTime());
    }

    /**
     * ���һ�����ڣ����������ڼ�
     * 
     * @param dateValue
     *            ����
     * @return �����ַ��͵����ڼ�
     * @throws ParseException
     */
    public static String getWeekStr(String sdate) throws ParseException {
	String str = "";
	str = getWeek(sdate);
	if ("1".equals(str)) {
	    str = "������";
	} else if ("2".equals(str)) {
	    str = "����һ";
	} else if ("3".equals(str)) {
	    str = "���ڶ�";
	} else if ("4".equals(str)) {
	    str = "������";
	} else if ("5".equals(str)) {
	    str = "������";
	} else if ("6".equals(str)) {
	    str = "������";
	} else if ("7".equals(str)) {
	    str = "������";
	}
	return str;
    }

    public static String DateTostr(Date dateValue,int Kind) throws ParseException {
    	
    	SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd-HH-mm-ss");    	
    	String strDate = formatter.format(dateValue);
    	StringTokenizer token = new StringTokenizer(strDate, "-");
    	String year = token.nextToken();
    	String month = token.nextToken();
    	String day = token.nextToken();
    	String hh = token.nextToken();
    	String mm = token.nextToken();
    	String ss = token.nextToken();
    	String strServerDateTime = "";
    	switch (Kind) {
    	case 1:
    	    strServerDateTime = year + month + day;
    	    break;
    	case 2:
    	    strServerDateTime = year + "/" + month + "/" + day;
    	    break;
    	case 3:
    	    strServerDateTime = hh + mm + ss;
    	    break;
    	case 4:
    	    strServerDateTime = hh + ":" + mm + ":" + ss;
    	    break;
    	case 5:
    	    strServerDateTime = year + month + day + " " + hh + mm + ss;
    	    break;
    	case 6:
    	    strServerDateTime = year + "/" + month + "/" + day + " " + hh + ":"
    		    + mm + ":" + ss;
    	    break;
    	case 7:
    	    strServerDateTime = year + "/" + month + "/" + day + "|" + hh + ":"
    		    + mm + ":" + ss;
    	    break;
    	case 8:
    	    strServerDateTime = year + month + day + hh + mm + ss;
    	    break;
    	case 9:
    	    strServerDateTime = year + "-" + month + "-" + day;
    	    break;
    	case 10:
    	    strServerDateTime = year + "-" + month + "-" + day + " " + hh + ":"
    		    + mm + ":" + ss;
    	    break;
    	case 11:
    	    strServerDateTime = year + "��" + month + "��" + day + "��";
    	    break;
    	case 12:
    	    strServerDateTime = year;
    	    break;
    	case 13:
    	    strServerDateTime = month + day;
    	    break;
    	case 14:
    	    strServerDateTime = hh;
    	    break;
    	case 15:
    	    strServerDateTime = year + month;
    	    break;
    	default:
    	    break;
    	}
    	return strServerDateTime;
    }
    
    public static String getWeekDay() {
    	nowDate=new Date();
    	String returnString="δ֪";
    	switch(nowDate.getDay()){
    		case 0:returnString="������";break;
    		case 1:returnString="����һ";break;
    		case 2:returnString="���ڶ�";break;
    		case 3:returnString="������";break;
    		case 4:returnString="������";break;
    		case 5:returnString="������";break;
    		case 6:returnString="������";break;
    		default:break;
    	}
    	return returnString;
    }

}