第一种是以毫秒为单位计算的。
创新互联公司专注为客户提供全方位的互联网综合服务,包含不限于成都做网站、网站建设、外贸营销网站建设、金湾网络推广、微信小程序开发、金湾网络营销、金湾企业策划、金湾品牌公关、搜索引擎seo、人物专访、企业宣传片、企业代运营等,从售前售中售后,我们都将竭诚为您服务,您的肯定,是我们最大的嘉奖;创新互联公司为所有大学生创业者提供金湾建站搭建服务,24小时服务热线:18980820575,官方网址:www.cdcxhl.com
[java] view plaincopy
//伪代码
long startTime=System.currentTimeMillis(); //获取开始时间
doSomeThing(); //测试的代码段
long endTime=System.currentTimeMillis(); //获取结束时间
System.out.println("程序运行时间: "+(end-start)+"ms");
第二种是以纳秒为单位计算的。
[java] view plaincopy
//伪代码
long startTime=System.nanoTime(); //获取开始时间
doSomeThing(); //测试的代码段
long endTime=System.nanoTime(); //获取结束时间
System.out.println("程序运行时间: "+(end-start)+"ns");
在java中,代表时间和日期的类型包括:java.util.Date和java.util.Calendar,此外,在JDBC API中还提供了3个扩展类,java.UtilDate类的子类:java.sql.Date,java.sql.Time,和java.sql.Timestamp,这三个类分别和标准SQL类型中的DATE,TIME,TIMESTAMP类型对应
在标准的SQL中,DATE类型表示日期,TIME类型表示时间,TIMESTAMP类型表示时间戳,同时包含日期和时间信息
因为java.util.Date是java.sql.Date,java.sql.Time,和java.sql.Timestamp的父类,所以java.util.Date可以对应标准SQL中的DATE,TIME,TIMESTAMP类型
所以在设置持久化类的类型是设置为java.util.Date
有两种方法:
方法一:用java.util.Date类来实现,并结合java.text.DateFormat类来实现时间的格式化,看下面代码:
import java.util.*;
import java.text.*;
//以下默认时间日期显示方式都是汉语语言方式
//一般语言就默认汉语就可以了,时间日期的格式默认为MEDIUM风格,比如:2008-6-16 20:54:53
//以下显示的日期时间都是再Date类的基础上的来的,还可以利用Calendar类来实现见类TestDate2.java
public class TestDate {
public static void main(String[] args) {
Date now = new Date();
Calendar cal = Calendar.getInstance();
DateFormat d1 = DateFormat.getDateInstance(); //默认语言(汉语)下的默认风格(MEDIUM风格,比如:2008-6-16 20:54:53)
String str1 = d1.format(now);
DateFormat d2 = DateFormat.getDateTimeInstance();
String str2 = d2.format(now);
DateFormat d3 = DateFormat.getTimeInstance();
String str3 = d3.format(now);
DateFormat d4 = DateFormat.getInstance(); //使用SHORT风格显示日期和时间
String str4 = d4.format(now);
DateFormat d5 = DateFormat.getDateTimeInstance(DateFormat.FULL,DateFormat.FULL); //显示日期,周,时间(精确到秒)
String str5 = d5.format(now);
DateFormat d6 = DateFormat.getDateTimeInstance(DateFormat.LONG,DateFormat.LONG); //显示日期。时间(精确到秒)
String str6 = d6.format(now);
DateFormat d7 = DateFormat.getDateTimeInstance(DateFormat.SHORT,DateFormat.SHORT); //显示日期,时间(精确到分)
String str7 = d7.format(now);
DateFormat d8 = DateFormat.getDateTimeInstance(DateFormat.MEDIUM,DateFormat.MEDIUM); //显示日期,时间(精确到分)
String str8 = d8.format(now);//与SHORT风格相比,这种方式最好用
System.out.println("用Date方式显示时间: " + now);//此方法显示的结果和Calendar.getInstance().getTime()一样
System.out.println("用DateFormat.getDateInstance()格式化时间后为:" + str1);
System.out.println("用DateFormat.getDateTimeInstance()格式化时间后为:" + str2);
System.out.println("用DateFormat.getTimeInstance()格式化时间后为:" + str3);
System.out.println("用DateFormat.getInstance()格式化时间后为:" + str4);
System.out.println("用DateFormat.getDateTimeInstance(DateFormat.FULL,DateFormat.FULL)格式化时间后为:" + str5);
System.out.println("用DateFormat.getDateTimeInstance(DateFormat.LONG,DateFormat.LONG)格式化时间后为:" + str6);
System.out.println("用DateFormat.getDateTimeInstance(DateFormat.SHORT,DateFormat.SHORT)格式化时间后为:" + str7);
System.out.println("用DateFormat.getDateTimeInstance(DateFormat.MEDIUM,DateFormat.MEDIUM)格式化时间后为:" + str8);
}
}
运行结果:
用Date方式显示时间: Mon Jun 16 20:54:53 CST 2008
用DateFormat.getDateInstance()格式化时间后为:2008-6-16
用DateFormat.getDateTimeInstance()格式化时间后为:2008-6-16 20:54:53
用DateFormat.getTimeInstance()格式化时间后为:20:54:53
用DateFormat.getInstance()格式化时间后为:08-6-16 下午8:54
用DateFormat.getDateTimeInstance(DateFormat.FULL,DateFormat.FULL)格式化时间后为
:2008年6月16日 星期一 下午08时54分53秒 CST
用DateFormat.getDateTimeInstance(DateFormat.LONG,DateFormat.LONG)格式化时间后为
:2008年6月16日 下午08时54分53秒
用DateFormat.getDateTimeInstance(DateFormat.SHORT,DateFormat.SHORT)格式化时间后
为:08-6-16 下午8:54
用DateFormat.getDateTimeInstance(DateFormat.MEDIUM,DateFormat.MEDIUM)格式化时间
后为:2008-6-16 20:54:53
方法二:用java.util.Calendar类来实现,看下面:
import java.util.*;
import java.text.*;
//以下是利用Calendar类来实现日期时间的,和Date类相比较比较简单
public class TestDate2 {
public static void main(String[] args) {
Calendar ca = Calendar.getInstance();
int year = ca.get(Calendar.YEAR);//获取年份
int month=ca.get(Calendar.MONTH);//获取月份
int day=ca.get(Calendar.DATE);//获取日
int minute=ca.get(Calendar.MINUTE);//分
int hour=ca.get(Calendar.HOUR);//小时
int second=ca.get(Calendar.SECOND);//秒
int WeekOfYear = ca.get(Calendar.DAY_OF_WEEK);
System.out.println("用Calendar.getInstance().getTime()方式显示时间: " + ca.getTime());
System.out.println("用Calendar获得日期是:" + year +"年"+ month +"月"+ day + "日");
System.out.println("用Calendar获得时间是:" + hour +"时"+ minute +"分"+ second +"秒");
System.out.println(WeekOfYear);//显示今天是一周的第几天(我做的这个例子正好是周二,故结果显示2,如果你再周6运行,那么显示6)
}
}
运行结果是:
用Calendar.getInstance().getTime()方式显示时间: Mon Jun 16 21:54:21 CST 2008
用Calendar获得日期是:2008年5月16日
用Calendar获得时间是:9时54分21秒
2
总结:中的来说,方法二是最方便的,方法一显得分笨拙,不过看个人喜欢了。
还有一种方法利用System.currentTimeMillis()也可以。
对于对着课本自学的新手而言,此时还没有接触到数组,所以,我给出利用switch嵌套的代码如下,结果是一样的,
package demo2_2;
import java.util.Scanner;
public class YuCe_2 {
public static void main(String args[]) {
Scanner sc = new Scanner(System.in);
System.out.println("输入数字: ");
int iTodays = sc.nextInt();
System.out.println("输入另一个数字: ");
int iElap = sc.nextInt();
int iNextDay = (iElap + iTodays) % 7;
switch (iNextDay) {
case 0:
switch(iTodays) {
case 0: System.out.println("今天周日" + iElap + " 天后周日");break;
case 1: System.out.println("今天周一" + iElap + " 天后周日");break;
case 2: System.out.println("今天周二" + iElap + " 天后周日");break;
case 3: System.out.println("今天周三" + iElap + " 天后周日");break;
case 4: System.out.println("今天周四" + iElap + " 天后周日");break;
case 5: System.out.println("今天周五" + iElap + " 天后周日");break;
case 6: System.out.println("今天周六" + iElap + " 天后周日");break;
}
break;
case 1:
switch(iTodays) {
case 0: System.out.println("今天周日" + iElap + " 天后周一");break;
case 1: System.out.println("今天周一" + iElap + " 天后周一");break;
case 2: System.out.println("今天周二" + iElap + " 天后周一");break;
case 3: System.out.println("今天周三" + iElap + " 天后周一");break;
case 4: System.out.println("今天周四" + iElap + " 天后周一");break;
case 5: System.out.println("今天周五" + iElap + " 天后周一");break;
case 6: System.out.println("今天周六" + iElap + " 天后周一");break;
}
break;
case 2:
switch(iTodays) {
case 0: System.out.println("今天周日" + iElap + " 天后周二");break;
case 1: System.out.println("今天周一" + iElap + " 天后周二");break;
case 2: System.out.println("今天周二" + iElap + " 天后周二");break;
case 3: System.out.println("今天周三" + iElap + " 天后周二");break;
case 4: System.out.println("今天周四" + iElap + " 天后周二");break;
case 5: System.out.println("今天周五" + iElap + " 天后周二");break;
case 6: System.out.println("今天周六" + iElap + " 天后周二");break;
}
break;
case 3:
switch(iTodays) {
case 0: System.out.println("今天周日" + iElap + " 天后周三");break;
case 1: System.out.println("今天周一" + iElap + " 天后周三");break;
case 2: System.out.println("今天周二" + iElap + " 天后周三");break;
case 3: System.out.println("今天周三" + iElap + " 天后周三");break;
case 4: System.out.println("今天周四" + iElap + " 天后周三");break;
case 5: System.out.println("今天周五" + iElap + " 天后周三");break;
case 6: System.out.println("今天周六" + iElap + " 天后周三");break;
}
break;
case 4:
switch(iTodays) {
case 0: System.out.println("今天周日" + iElap + " 天后周四");break;
case 1: System.out.println("今天周一" + iElap + " 天后周四");break;
case 2: System.out.println("今天周二" + iElap + " 天后周四");break;
case 3: System.out.println("今天周三" + iElap + " 天后周四");break;
case 4: System.out.println("今天周四" + iElap + " 天后周四");break;
case 5: System.out.println("今天周五" + iElap + " 天后周四");break;
case 6: System.out.println("今天周六" + iElap + " 天后周四");break;
}
break;
case 5:
switch(iTodays) {
case 0: System.out.println("今天周日" + iElap + " 天后周五");break;
case 1: System.out.println("今天周一" + iElap + " 天后周五");break;
case 2: System.out.println("今天周二" + iElap + " 天后周五");break;
case 3: System.out.println("今天周三" + iElap + " 天后周五");break;
case 4: System.out.println("今天周四" + iElap + " 天后周五");break;
case 5: System.out.println("今天周五" + iElap + " 天后周五");break;
case 6: System.out.println("今天周六" + iElap + " 天后周五");break;
}
break;
case 6:
switch(iTodays) {
case 0: System.out.println("今天周日" + iElap + " 天后周六");break;
case 1: System.out.println("今天周一" + iElap + " 天后周六");break;
case 2: System.out.println("今天周二" + iElap + " 天后周六");break;
case 3: System.out.println("今天周三" + iElap + " 天后周六");break;
case 4: System.out.println("今天周四" + iElap + " 天后周六");break;
case 5: System.out.println("今天周五" + iElap + " 天后周六");break;
case 6: System.out.println("今天周六" + iElap + " 天后周六");break;
}
break;
}
}
}
static
public
boolean
isValidDate(
int
year,
int
mon,
int
day,
short
year_min,short
year_max,
StringBuffer
msg)
{
if(yearyear_min
||
yearyear_max)
{
msg.append("年份必须在("+
year_min+"~"+year_max+
")之间,输入值("+year+")无效\n");
return
false;
}else
if(mon1
||
mon12){
msg.append("月份必须在(1~12)之间,输入值("+mon+")无效\n");
return
false;
}else
if(day1
||
day31){
msg.append("日号必须在(1~31)之间,输入值("+day+")无效\n");
return
false;
}else
if(mon==2){
if(isLeapYear(year)
day29){
msg.append("闰年的闰二月日号必须在(1~29)之间,"+year+"是闰年,输入值("+day+")无效\n");
return
false;
}else
if(day28){
msg.append("非闰年的闰二月的日号必须在(1~28)之间,"+year+"不是闰年,输入值("+day+")无效\n");
return
false;
}
}
return
true;
}
//闰年
static
public
boolean
isLeapYear(int
year){
return
(year%4==0
year%100!=0)||
year%400==0;
}