導航:首頁 > 編程語言 > java計算日期

java計算日期

發布時間:2023-03-26 20:29:48

Ⅰ (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月。

(1)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天

Ⅱ java中date的獲取以及使用

1、使用new Date()獲取當前日期,new Date().getTime()獲取當前毫秒數

2、計算公式,等於獲取的當前日期減去或者加上一天的毫秒數。一天的毫秒數的計算公式:24小時*60分鍾*60秒*1000毫秒,也是86400000毫秒。

舉例:

Date curDate = new Date();

var preDate = new Date(curDate.getTime() - 24*60*60*1000); //前一天

var nextDate = new Date(curDate.getTime() + 24*60*60*1000); //後一天

以下圖片使用後台輸出表示。

(2)java計算日期擴展閱讀

var myDate = new Date();

myDate.getYear(); //獲取當前年份(2位)

myDate.getFullYear(); //獲取完整的年份(4位,1970-????)

myDate.getMonth(); //獲取當前月份(0-11,0代表1月)

myDate.getDate(); //獲取當前日(1-31)

myDate.getDay(); //獲取當前星期X(0-6,0代表星期天)

myDate.getTime(); //獲取當前時間(從1970.1.1開始的毫秒數)

myDate.getHours(); //獲取當前小時數(0-23)

myDate.getMinutes(); //獲取當前分鍾數(0-59)

myDate.getSeconds(); //獲取當前秒數(0-59)

myDate.getMilliseconds(); //獲取當前毫秒數(0-999)

myDate.toLocaleDateString(); //獲取當前日期

var mytime=myDate.toLocaleTimeString(); //獲取當前時間

myDate.toLocaleString( ); //獲取日期與時間

Date.prototype.isLeapYear 判斷閏年

Date.prototype.Format 日期格式化

Date.prototype.DateAdd 日期計算

Date.prototype.DateDiff 比較日期差

Date.prototype.toString 日期轉字元串

Date.prototype.toArray 日期分割為數組

Date.prototype.DatePart 取日期的部分信息

Date.prototype.MaxDayOfDate 取日期所在月的最大天數

Date.prototype.WeekNumOfYear 判斷日期所在年的第幾周

StringToDate 字元串轉日期型

IsValidDate 驗證日期有效性

CheckDateTime 完整日期時間檢查

daysBetween 日期天數差

Ⅲ java 計算某日期 多少天後的日期

java計算某日期之後的日期,可以參考如下代碼:
public static void main(String[] args) {
// 時間表示格式可以改變,yyyyMMdd需要寫例如20160523這種形式的時間
SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd");
String str = "2016/05/23";
// 將字元串的日期轉為Date類型,ParsePosition(0)表示從第一個字元開始解析
Date date = sdf.parse(str, new ParsePosition(0));
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
// add方法中的第二個參數n中,正數表示該日期後n天,負數表示該日期的前n天
calendar.add(Calendar.DATE, -10);
Date date1 = calendar.getTime();
String out = sdf.format(date1);
System.out.println(out);
}

Ⅳ 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 ));

Ⅳ java中計算兩個日期之間差的天數

分類: 電腦/網路 >> 程序設計 >> 其他編程語言
問題描述:

比如兩個日期:2005-12-31和2006-01-05,怎麼才能精確的計算出這兩個日期之間差的天數?

望回答的詳細一些,謝了先.

解析:

import java.text.ParseException;

import java.text.SimpleDateFormat;

import java.util.Date;

class Test2 {

public static String getDate(){

SimpleDateFormat ft = new SimpleDateFormat("yyyy/MM/dd");

Date dd = new Date();

return ft.format(dd);

}

public static long getQuot(String time1, String time2){

long quot = 0;

SimpleDateFormat ft = new SimpleDateFormat("yyyy/MM/dd");

try {

Date date1 = ft.parse( time1 );

Date date2 = ft.parse( time2 );

quot = date1.getTime() - date2.getTime();

quot = quot / 1000 / 60 / 60 / 24;

} catch (ParseException e) {

e.printStackTrace();

}

return quot;

}

public static void main(String[] args) throws Exception {

String date1 = "2008/8/8";

String date2 = getDate();

long day = getQuot(date1,date2);

System.out.println( "距離 "+date1+" 還有 "+day+" 天" );

}

}

你看一下這段代碼,是從今天到2008/8/8的天數。

Date的getTime()方法返回自1970年1月1日午盯陪夜(通用時彎銷間)以來的毫秒數。

用2008/8/8的getTime()減去今天的getTime()就是這兩天相差的毫秒數,1秒=1000毫秒,1分鍾=60秒,1小時=60分鍾,1天埋則游=24小時,然後除除除就得到天數了。

Ⅵ Java 寫個程序計算日期

import java.util.*;
public class DateCl {
public static void main(String[] args)
{
Scanner input = new Scanner(System.in);
System.out.print("Please enter the year: ");
int year = input.nextInt();
System.out.print("Please enter the month: ");
int month = input.nextInt();
System.out.print("Please enter the day: ");
int day = input.nextInt();

}
public static boolean isLeapYear(int year){
if((year % 4 == 0 && year % 100 != 0) || year % 400 == 0)
{
return true;
}
else
{
return false;
}
}

public static int dayNum (int month, int day, int year){
int dayNum;
dayNum = 31 * (month - 1) + day;
if (month > 2)
{
dayNum = dayNum - (4 *month + 23)/10;
}
if (isLeapYear(year) == true && month >= 3)
{
dayNum = dayNum + 1;
}
return dayNum;
}
public static String dayOfWeek (int mon, int day, int year)
{

if (mon < 3) {
mon += 12;
year -= 1;
}

int k = year % 100;
int j = year / 100;

int h = ((day + (((mon + 1) * 26) / 10) + k + (k / 4) + (j / 4)) + (5 * j)) % 7;

String Name = "";
if (day == 0)
Name = "Saturday";
else if (day == 1)
Name="Sunday";
else if (day == 2)
Name="Monday";
else if (day == 3)
Name="Tuesday";
else if (day == 4)
Name="Wednesday";
else if (day == 5)
Name="Thursday";
else if (day == 6)
Name="Friday";

}

}
System.out.println ("The date is " + year + " ." + month + " ." + day +" , it is the" );
}

Ⅶ java如何獲取當前日期並計算出2個月後的日期

//0、日期輸出格式
SimpleDateFormat f = new SimpleDateFormat("yyyy/MM/dd,HH:mm:ss");

//1、獲取當前日期 方式一
Date b = new Date();
System.out.println(f.format(b));

//2、獲取當前日期 方式二
Calendar c = Calendar.getInstance();
//可以手動設置日期
//c.set(2011, Calendar.JANUARY, 31);
System.out.println(f.format(c.getTime()));

//3、獲取當前日期增加兩個月後的日期,
c.add(Calendar.MONTH, 2);
System.out.println(f.format(c.getTime()));

Ⅷ 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 類實搏友團現了這個介面。

Ⅸ java 計算當前時間離月底有多少天

import java.util.Calendar;
==========

Calendar c = Calendar.getInstance();
int d = c.getActualMaximum(Calendar.DAY_OF_MONTH);
int now = c.get(Calendar.DAY_OF_MONTH);

System.out.println(d - now);

閱讀全文

與java計算日期相關的資料

熱點內容
maya粒子表達式教程 瀏覽:84
抖音小視頻如何掛app 瀏覽:283
cad怎麼設置替補文件 瀏覽:790
win10啟動文件是空的 瀏覽:397
jk網站有哪些 瀏覽:134
學編程和3d哪個更好 瀏覽:932
win10移動硬碟文件無法打開 瀏覽:385
文件名是亂碼還刪不掉 瀏覽:643
蘋果鍵盤怎麼打開任務管理器 瀏覽:437
手機桌面文件名字大全 瀏覽:334
tplink默認無線密碼是多少 瀏覽:33
ipaddgm文件 瀏覽:99
lua語言編程用哪個平台 瀏覽:272
政采雲如何導出pdf投標文件 瀏覽:529
php獲取postjson數據 瀏覽:551
javatimetask 瀏覽:16
編程的話要什麼證件 瀏覽:94
錢脈通微信多開 瀏覽:878
中學生學編程哪個培訓機構好 瀏覽:852
榮耀路由TV設置文件共享錯誤 瀏覽:525

友情鏈接