A. java如何计算程序运行时间
第一种是以毫秒为单位计算的。
[java]view plain
//伪代码
longstartTime=System.nanoTime();//获取开始时间
doSomeThing();//测试的代码段
longendTime=System.nanoTime();//获取结束时间
System.out.println("程序运行时间:"+(end-start)+"ns");
包含所需的包: import java.lang.System;
B. java类里面怎么计算时间
用Calendar类里面的add(int field, int amount) 方法进行时间的计算。示例代码如下:
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
public class TestCalendar {
public static void main(String[] args){
Calendar c = Calendar.getInstance();
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
try {
c.setTime(format.parse("2011-08-05 14:49:45"));
System.out.println("原来的时间:"+format.format(c.getTime()));
c.add(Calendar.MINUTE,20);
System.out.println("计算后得到的时间:"+format.format(c.getTime()));
} catch (ParseException e) {
e.printStackTrace();
}
}
}
C. Java时间计算
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.Scanner;
public class test2
{
public static void main(String[] args)
{
calculateDate();
}
public static void calculateDate()
{
Calendar cal = Calendar.getInstance();
Scanner scanner = new Scanner(System.in);
System.out.print("请输入1个日期(yyyy-MM-dd格式):");
String date1 = scanner.next();
//以“-”分离字符串
String[] s1 = date1.split("-");
String year1 = s1[0];//获取年
String month1 = s1[1];//获取月
String day1 = s1[2];//获取日
cal.set(Integer.parseInt(year1), Integer.parseInt(month1) - 1, Integer.parseInt(day1));//月份是从0开始的,所以要减1
long time1 = cal.getTimeInMillis();//输入日期的long值
long time2 = time1 - 20*1000*60*60*24 ;//20天前的long值 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
String date = sdf.format(new Date(time2));
System.out.println("该日期前20天是:"+date);
}}
D. 计算Java程序执行时间的几种方法
最简单的就是直接获取开始时间、结束时间,计算时间差
publicclassDemo{
publicstaticvoidmain(String[]args){
longstartTime=System.currentTimeMillis();//获取开始时间
doSomething();//测试的代码段
longendTime=System.currentTimeMillis();//获取结束时间
System.out.println("程序运行时间:"+(endTime-startTime)+"ms");//输出程序运行时间
}
}
E. java 怎么计算程序运行的时间
long a=System.currentTimeMillis();
long b=System.currentTimeMillis();
a放在程序的开始
b放在结束,然后相减即是程序运行时间
F. java整么计算时间
提供一个时间操作类给你,你可以调用里面的dateDiff方法,dateDiff(new Date(), getDateFromString("明天的字符串")表示的就是现在到明天0点之前的差距天数。
你要分钟数的话就自己改一下dateDiff,不要除以60和24就是分钟了
以下是工具类代码
importorg.apache.log4j.Logger;
importjava.text.ParseException;
importjava.text.SimpleDateFormat;
importjava.util.Calendar;
importjava.util.Date;
publicclassAdDateUtil{
privatestaticLoggerlogger=Logger.getLogger(AdDateUtil.class);
staticpublicStringgetNowStr(Stringformat){
SimpleDateFormatsdf=newSimpleDateFormat(format);
Stringnow=sdf.format(newDate());
returnnow;
}
staticpublicDategetFormatDate(Stringdate,Stringformat){
SimpleDateFormatsdf=newSimpleDateFormat(format);
Dated=newDate();
try{
d=sdf.parse(date);
}catch(ParseExceptione){
logger.error(e);
}
returnd;
}
staticpublicStringgetDateStr(Datedate,Stringformat){
SimpleDateFormatsdf=newSimpleDateFormat(format);
Stringd=sdf.format(date);
returnd;
}
(Strings,intsize){
StringBuffersb=newStringBuffer();
for(inti=0;i<(size-s.length());i++){
sb.append("0");
}
sb.append(s);
returnsb.toString();
}
/**
*得到某月的天数
*
*@paramyear
*@parammonth
*@return
*/
(Stringyear,Stringmonth){
Calendarcal=Calendar.getInstance();
//年
cal.set(Calendar.YEAR,Integer.parseInt(year));
//月,因为Calendar里的月是从0开始,所以要-1
cal.set(Calendar.MONTH,Integer.parseInt(month)-1);
returncal.getActualMaximum(Calendar.DAY_OF_MONTH);
}
(Stringformat){
SimpleDateFormatdf=newSimpleDateFormat(format);
Calendarnow=Calendar.getInstance();
now.roll(Calendar.DAY_OF_YEAR,-1);//昨天
returndf.format(now.getTime());
}
/**
*获取和今天附近的某天
*@paramformat
*@paramdiff
*@return
*/
staticpublicStringgetADay(Stringformat,intdiff){
SimpleDateFormatdf=newSimpleDateFormat(format);
Calendarnow=Calendar.getInstance();
intbeforeM=now.get(Calendar.MONTH);
now.roll(Calendar.DAY_OF_YEAR,diff);//
intnowM=now.get(Calendar.MONTH);
//必须进行日期处理,否则2009-01-04日前七天是2009-12-28
if(nowM>beforeM){
now.roll(Calendar.YEAR,-1);
}
returndf.format(now.getTime());
}
staticpublicStringgetTomorrow(Stringformat){
SimpleDateFormatdf=newSimpleDateFormat(format);
Calendarnow=Calendar.getInstance();
now.roll(Calendar.DAY_OF_YEAR,1);//明天
returndf.format(now.getTime());
}
/**
*得到最近num天的全部日期
*说明:
*1.日期是从昨天开始算的.
*2.如果num=2,日期是2008-03-14,则返回的结果为2008-03-12、2008-03-13
*@paramnum
*@return
*/
publicstaticString[]getDaysByNum(intnum,Stringdate){
SimpleDateFormatsdf=newSimpleDateFormat("yyyy-MM-dd");
String[]result={};
Calendarcal=Calendar.getInstance();
cal.setTime(getDateFromString(date,"yyyy-MM-dd"));
//最近一周
result=newString[num];
for(inti=num;i>0;i--){
cal.add(Calendar.DAY_OF_YEAR,-1);
result[i-1]=sdf.format(newDate(cal.getTimeInMillis()));
}
returnresult;
}
(StringdateStr,Stringformat){
if((dateStr==null)||(format==null)){
try{
thrownewException("数据类型异常"+dateStr+"|"+format);
}catch(Exceptione){
logger.error("数据类型异常:"+e);
}
}
SimpleDateFormatdf=newSimpleDateFormat(format);
Datedate;
try{
date=df.parse(dateStr);
returndate;
}catch(Exceptionex){
logger.error(ex);
returnnewDate();
}
}
staticpublicintgetNowYear(){
Calendarcal=Calendar.getInstance();
returncal.get(Calendar.YEAR);
}
staticpublicintgetNowMonth(){
Calendarcal=Calendar.getInstance();
returncal.get(Calendar.MONTH)+1;
}
publicstaticString[]getMonthRang(Stringyear,Stringmonth){
StringbeginDate=year+"-"+month+"-01";
StringendDate=year+"-"+month+"-"+
getDayCountOfMonth(year,month);
returngetDaysByRang(beginDate,endDate);
}
publicstaticString[]getDaysByRang(StringbeginDate,StringendDate){
SimpleDateFormatsdf=newSimpleDateFormat("yyyy-MM-dd");
//得到两个日期间相差多少天
intnum=dateDiff(beginDate,endDate);
if(num<0){
//颠倒一下日期
Stringtmp=beginDate;
beginDate=endDate;
endDate=tmp;
num=0-num;
}
String[]result={};
Calendarcal=Calendar.getInstance();
try{
cal.setTime(sdf.parse(beginDate));
}catch(ParseExceptione){
e.printStackTrace();
}
num=num+1;//把开始和结束日期都包含进去
result=newString[num];
for(inti=0;i<num;i++){
if(i>0){
cal.add(Calendar.DAY_OF_YEAR,1);
}
result[i]=sdf.format(newDate(cal.getTimeInMillis()));
}
returnresult;
}
publicstaticintdateDiff(StringbeginDate,StringendDate){
SimpleDateFormatsdf=newSimpleDateFormat("yyyy-MM-dd");
Datedate=null;
try{
date=sdf.parse(endDate);
}catch(ParseExceptione){
date=newDate();
e.printStackTrace();
}
longend=date.getTime();
try{
date=sdf.parse(beginDate);
}catch(ParseExceptione){
date=newDate();
e.printStackTrace();
}
longbegin=date.getTime();
longday=(end-begin)/(1000*3600*24);//除1000是把毫秒变成秒
returnInteger.parseInt(Long.toString(day));
}
publicstaticvoidmain(String[]args){
System.out.println(AdDateUtil.getADay("yyyy-MM-dd",-7));
}
}
G. java计算时间
可以这么写:
publicstaticvoidcompute(){
Scannerscanner=newScanner(System.in);
inttime1,time2,hours,minutes;
time1=scanner.nextInt();
time2=scanner.nextInt();
Stringt1=String.valueOf(time1);
Stringt2=String.valueOf(time2);
//开始时间的小时
intt1_hour=Integer.parseInt(t1.substring(0,t1.length()-2));
//结束时间的小时
intt2_hour=Integer.parseInt(t2.substring(0,t2.length()-2));
//开始时间的分钟
intt1_minute=Integer.parseInt(t1.substring(t1.length()-2));
//结束时间的分钟
intt2_minute=Integer.parseInt(t2.substring(t2.length()-2));
//时间差的小时
hours=((t2_hour*60+t2_minute)-(t1_hour*60+t1_minute))/60;
//时间差的分钟
minutes=((t2_hour*60+t2_minute)-(t1_hour*60+t1_minute))%60;
System.out.println("Thetrainjourneytimeis"+hours+"hrs"+minutes+"mins.");
scanner.close();
}
H. Java计算两个日期时间相差几天,几小时,几分钟等
思路是先计算两个日期相差的毫秒数,然后分别根据每天的毫秒数、每小时的毫秒数、每分钟的毫秒数来计算相差几天,几小时,几分钟。具体代码如下:
public static String getDatePoor(Date endDate, Date nowDate) {
long nd = 1000 * 24 * 60 * 60;//每天毫秒数
long nh = 1000 * 60 * 60;//每小时毫秒数
long nm = 1000 * 60;//每分钟毫秒数
long diff = endDate.getTime() - nowDate.getTime();// 获得两个时间的毫秒时间差异
long day = diff / nd; // 计算差多少天
long hour = diff % nd / nh;// 计算差多少小时
long min = diff % nd % nh / nm; // 计算差多少分钟
return day + "天" + hour + "小时" + min + "分钟";
}
然后做一个测试,调用这个方法测试一下:
可以看出两个日期时间相差几天,几小时,几分钟都可以算出来。
(8)java计算方法时间扩展阅读:
Java使用以下三种方法来比较两个日期:
1、使用 getTime() 方法获取两个日期(自1970年1月1日经历的毫秒数值),然后比较这两个值。
2、使用方法 before(),after() 和 equals()。例如,一个月的12号比18号早,则 new Date(99, 2, 12).before(new Date (99, 2, 18)) 返回true。
3、使用 compareTo() 方法,它是由 Comparable 接口定义的,Date 类实现了这个接口。
I. java如何计算日期的加减
第一种,知道日期,如2019091109144
String str=txnTime;
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");//格式化输出日期
Date dt = null;
try {
dt = sdf.parse(str);
} catch (ParseException e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
}
Calendar rightNow = Calendar.getInstance();
rightNow.setTime(dt);
rightNow.add(Calendar.YEAR,-1);//日期减1年
rightNow.add(Calendar.MONTH,3);//日期加3个月
rightNow.add(Calendar.DAY_OF_YEAR,10);//日期加10天
rightNow.add(Calendar.SECOND,60);//日期加60秒天
Date dt1=rightNow.getTime();
String reStr = sdf.format(dt1);
System.out.println(reStr);
第二种,自己获取时间,格式化输出计算加减
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");//格式化输出日期
Date now = new Date();
long time = 60*1000;//60秒
Date afterDate = new Date(now .getTime() + time);//60秒后的时间
Date beforeDate = new Date(now .getTime() - time);//60秒前的时间
System.out.println(sdf.format(afterDate ));
J. Java中怎样计算一个方法的运行时间,不要以为我的问题很2,仔细想想
1.取时间
2.执行方法
3.取时间
4.计算两次时间差