⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 datetransform.java

📁 用eclipse开发的关于clock的一个JAVA程序
💻 JAVA
字号:
package base.util;
import java.util.Calendar;
import java.util.Date;

public class DateTransform {
	public static final int MILLISECOND=0;
	public static final int SECOND=1;
	public static final int MINUTE=2;
	public static final int HOUR=3;
	//此方法返回两个时间间隔,精确到毫秒
	public static long getDateInterval(String bakTime,String curTime){
		
		String bdt1[]=bakTime.substring(0,bakTime.indexOf(" ")).split("-");
		String bdt2[]=bakTime.substring(bakTime.indexOf(" ")+1,bakTime.length()).split(":");
		 
		String cdt1[]=curTime.substring(0,curTime.indexOf(" ")).split("-");
		String cdt2[]=curTime.substring(curTime.indexOf(" ")+1,curTime.length()).split(":");
		
		Calendar c1=Calendar.getInstance();
		Calendar c2=Calendar.getInstance();
		
		c1.setTime(new Date(
				Integer.parseInt(bdt1[0]),
				Integer.parseInt(bdt1[1]),
				Integer.parseInt(bdt1[2]),
				Integer.parseInt(bdt2[0]),
				Integer.parseInt(bdt2[1]),
				Integer.parseInt(bdt2[2])));
		c2.setTime(new Date(
				Integer.parseInt(cdt1[0]),
				Integer.parseInt(cdt1[1]),
				Integer.parseInt(cdt1[2]),
				Integer.parseInt(cdt2[0]),
				Integer.parseInt(cdt2[1]),
				Integer.parseInt(cdt2[2])));
		long a=c1.getTime().getTime();
		long b=c2.getTime().getTime();
		return b-a;
	}
//	此方法返回两个时间间隔,精确到毫秒,参数是java.util.Date类型
	public static long getDateInterval(Date bakTime,Date curTime){
		long a=bakTime.getTime();
		long b=curTime.getTime();
		return b-a;
	}
//	此方法返回两个时间间隔,精确到毫秒,参数是java.util.Calendar类型
	public static long getDateInterval(java.util.Calendar bakTime,java.util.Calendar curTime){
		return getDateInterval(bakTime.getTime(),curTime.getTime());
	}
//返回当前时间离下一个整点/整分/整秒 还有多少毫秒
	public static long getNextInterval(int type){
		Calendar calendar1 = Calendar.getInstance();
		Calendar calendar2 = (Calendar)calendar1.clone();
		
		switch(type)
		{
			case DateTransform.SECOND:
				calendar2.add(Calendar.SECOND,1);
				calendar2.set(Calendar.MILLISECOND,0);
				break;
			case DateTransform.MINUTE:
				calendar2.add(Calendar.MINUTE,1);
				calendar2.set(Calendar.SECOND, 0);
				calendar2.set(Calendar.MILLISECOND,0);
				break;
			case DateTransform.HOUR:
				calendar2.add(Calendar.HOUR,1);		
				calendar2.set(Calendar.MINUTE, 0);
				calendar2.set(Calendar.SECOND, 0);
				calendar2.set(Calendar.MILLISECOND, 0);
				break;
		}	
		return getDateInterval(calendar1.getTime(),calendar2.getTime());
	}
//返回一个当前时间的标准格式,如"2007-01-05 13:00:11"
	public static String getStandardTime(){
		Calendar expdate = Calendar.getInstance();
		java.util.Date date = expdate.getTime();
		java.sql.Time nowTime = new java.sql.Time(date.getTime());
		java.sql.Date nowDate = new java.sql.Date(date.getTime());
		return nowDate.toString()+" "+nowTime.toString();
	}
//	获取每月的天数,如2007-2月,用此方法则返回28
	private static int getDays(int year,int month){
		switch(month){
		case 1:
			return 31;
		case 2:
			return year%400==0 ||(year%4==0 && year%100!=0)?29:28;
		case 3:
			return 31;
		case 4:
			return 30;
		case 5:
			return 31;
		case 6:
			return 30;
		case 7:
			return 30;
		case 8:
			return 31;
		case 9:
			return 30;
		case 10:
			return 31;
		case 11:
			return 30;
		case 12:
			return 31;
				
		}
		return -1;
	}
	//获取今天最早时刻
	public static Date getBeginTime() {
		Calendar rightNow = Calendar.getInstance();
		rightNow.set(Calendar.HOUR_OF_DAY, 23);
		rightNow.set(Calendar.MINUTE, 59);
		rightNow.set(Calendar.SECOND, 59);
		rightNow.set(Calendar.MILLISECOND, 999);

		return rightNow.getTime();
	}
//	获取今天最晚时刻
	public static Date getEndTime() {
		Calendar rightNow = Calendar.getInstance();
		rightNow.set(Calendar.HOUR_OF_DAY, 0);
		rightNow.set(Calendar.MINUTE, 0);
		rightNow.set(Calendar.SECOND, 0);
		rightNow.set(Calendar.MILLISECOND, 0);

		return rightNow.getTime(); 
	}
	//main method
	public static void main(String[] args) {
		String bakTime="2007-01-05 13:00:11";
		String curTime="2007-01-05 13:01:40";
		System.out.println("1.时间差是: "+getDateInterval(bakTime,curTime)+"毫秒");
		System.out.println("2.当前时间:"+getStandardTime());
		System.out.println("3.距下一个整点还有多少毫秒:"+getNextInterval(DateTransform.HOUR));
		System.out.println("4.距下一个整分还有多少毫秒:"+getNextInterval(DateTransform.MINUTE));
		System.out.println("5.距下一个整秒还有多少毫秒:"+getNextInterval(DateTransform.SECOND));
		
		System.out.println("2007年2月有多少天:"+getDays(2007,2));
		
		System.out.println("今天最早时刻 = " + getBeginTime());
		System.out.println("今天最晚时刻 = " + getEndTime());
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -