java計算時間
1. 計算java程序執行時間的幾種方法
最簡單的就是直接獲取開始時間、結束時間,計算時間差
publicclassDemo{
publicstaticvoidmain(String[]args){
longstartTime=System.currentTimeMillis();//獲取開始時間
doSomething();//測試的代碼段
longendTime=System.currentTimeMillis();//獲取結束時間
System.out.println("程序運行時間:"+(endTime-startTime)+"ms");//輸出程序運行時間
}
}
2. java 怎麼計算程序運行的時間
long a=System.currentTimeMillis();
long b=System.currentTimeMillis();
a放在程序的開始
b放在結束,然後相減即是程序運行時間
3. 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));
}
}
4. java 計算兩個時間相差多少秒
java 計算兩個時間相差可以用getTime()來獲得兩個時間的毫秒數,可以這樣計算得出兩個時間的秒數的相差如下:
Datea=newDate();
Thread.sleep(3000);
Dateb=newDate();
longinterval=(b.getTime() -a.getTime())/1000;
System.out.println("兩個時間相差"+interval+"秒").
5. 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();
}
6. java程序中日期計算
第一種是以毫秒為單位計算的。
[java] view plain
//偽代碼
long startTime=System.currentTimeMillis(); //獲取開始時間
doSomeThing(); //測試的代碼段
long endTime=System.currentTimeMillis(); //獲取結束時間
System.out.println("程序運行時間: "+(end-start)+"ms");
第二種是以納秒為單位計算的。
[java] view plain
//偽代碼
long startTime=System.nanoTime(); //獲取開始時間
doSomeThing(); //測試的代碼段
long endTime=System.nanoTime(); //獲取結束時間
System.out.println("程序運行時間: "+(end-start)+"ns");
7. 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 + "分鍾";
}
然後做一個測試,調用這個方法測試一下:
可以看出兩個日期時間相差幾天,幾小時,幾分鍾都可以算出來。
(7)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 類實現了這個介面。
8. java如何計算程序運行時間
第一種是以毫秒為單位計算的。
[java]view plain
//偽代碼
longstartTime=System.nanoTime();//獲取開始時間
doSomeThing();//測試的代碼段
longendTime=System.nanoTime();//獲取結束時間
System.out.println("程序運行時間:"+(end-start)+"ns");
包含所需的包: import java.lang.System;
9. (JAVA)輸入年月日,計算日期是今年的第幾天
import java.util.Scanner;
/**
* Created by xpf on 2018/6/22 :)
* GitHub:xinpengfei520
* Function:
*/
public class CalculateUtils {
/*平年二月28天*/
private static final int DAYS_28 = 28;
/*閏年二月29天*/
private static final int DAYS_29 = 29;
/*除了31天的月份其他均為30天*/
private static final int DAYS_30 = 30;
/*1、3、5、7、8、10、12月份31天*/
private static final int DAYS_31 = 31;
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("Please input year:");
int year = input.nextInt();
System.out.println("Please input month:");
int month = input.nextInt();
System.out.println("Please input day:");
int day = input.nextInt();
int daysInYear = getDaysInYear(year, month, day);
System.out.println("daysInYear:" + daysInYear);
}
/**
* get days in this year
*
* @param year
* @param month
* @param day
* @return
*/
public static int getDaysInYear(int year, int month, int day) {
int totalDays = 0;
switch (month) {
// 12 月份加的是11月份的天數,依次類推
case 12:
totalDays += DAYS_30;
case 11:
totalDays += DAYS_31;
case 10:
totalDays += DAYS_30;
case 9:
totalDays += DAYS_31;
case 8:
totalDays += DAYS_31;
case 7:
totalDays += DAYS_30;
case 6:
totalDays += DAYS_31;
case 5:
totalDays += DAYS_30;
case 4:
totalDays += DAYS_31;
case 3:
// 判斷是否是閏年
if (((year / 4 == 0) && (year / 100 != 0)) || (year / 400 == 0)) {
totalDays += DAYS_29;
} else {
totalDays += DAYS_28;
}
case 2:
totalDays += DAYS_31;
case 1: // 如果是1月份就加上輸入的天數
totalDays += day;
}
return totalDays;
}
}
【解題思路】
1、通過年份區分是閏年還是平年,平年 2 月 28 年,閏年 2 月 29 天。
2、1、3、5、7、8、10、12 月份為 31 天,其餘月份為 30 天。
3、將每個月的天數相加即可,如果輸入的是 12 月,則從 11 月往前累加到1月。
(9)java計算時間擴展閱讀
其他java計算日期的方式
package study01;
import java.util.Scanner;
public class TestDay {
/*
* 輸入2017年的月和日:month=?,day=? 輸出輸入的日期是2017年的第幾天,使用switch完成
*/
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("month=");
int month = sc.nextInt();
System.out.print("day=");
int day = sc.nextInt();
int days = 0;
switch (month) {
case 12:
days += 30;
case 11:
days += 31;
case 10:
days += 30;
case 9:
days += 31;
case 8:
days += 31;
case 7:
days += 30;
case 6:
days += 31;
case 5:
days += 30;
case 4:
days += 31;
case 3:
days += 28;
case 2:
days += 31;
case 1:
days += day;
}
if(days>365){
System.out.println("你輸入的已經超過了365天了");
}else{
System.out.println("第" + days + "天");
}
}
}
輸出的結果如下:
month=12
day=31
第365天
10. java中計算兩個時間相差多少分鍾
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 ns = 1000;
// 獲得兩個時間的毫秒時間差異
long diff = endDate.getTime() - nowDate.getTime();
// 計算差多少天
long day = diff / nd;
// 計算差多少小時
long hour = diff % nd / nh;
// 計算差多少分鍾
long min = diff % nd % nh / nm;
// 計算差多少秒//輸出結果
// long sec = diff % nd % nh % nm / ns;
return day + "天" + hour + "小時" + min + "分鍾";
}
data默認有toString()
輸出格林威治時間,比如說Date date = new Date();
String toStr = date.toString();
(10)java計算時間擴展閱讀:
Java是由Sun Microsystems公司於1995年5月推出的Java程序設計語言(以下簡稱Java語言)和Java平台的總稱。
用Java實現的HotJava瀏覽器(支持Java applet)顯示了Java的魅力:跨平台、動感的Web、Internet計算。
從此,Java被廣泛接受並推動了Web的迅速發展,常用的瀏覽器現在均支持Java applet。另一方面,Java技術也不斷更新。
Java語言是一個面向對象的。Java語言提供類、介面和繼承等原語,為了簡單起見,只支持類之間的單繼承,但支持介面之間的多繼承,並支持類與介面之間的實現機制(關鍵字為implements)。