1. java 計算兩個日期點之間相差的年數
經精確,就逐年以 Calendar 類的方法去add、判斷是否超了。
2. java編程:求兩個日期的年數差
oracle資料庫
比如有表test
裡面有欄位
id,begindate,enddate
可以這樣
select to_char(begindate,'yyyy-mm') begindate,to_char(enddate,'yyyy-mm') enddate from test where id=?
上面的問號可以換成你傳入的id號
在獲得後
String begindate = rs.getString("begindate");
Stirng enddate = rs.getString("enddate");
String[] str1 = begindate.split("-");
String[] str2 = enddate.split("-");
int year1 = Integer.parseInt(str1[0]);
int month1 = Integer.parseInt(str1[1]);
if(month1 == 12){
year1 +=1;
}
int year2 = Integer.parseInt(str2[0]);
int month2 = Integer.parseInt(str2[1]);
if(month2 == 12){
year2 +=1;
}
int year = year2-year1;
System.out.println("相差:"+year);
3. 簡單的Java題目,關於年份、時間、日期的計算。求助!!!
給你代碼
import java.text.SimpleDateFormat;
import java.util.Calendar;
public class TimeTest {
static long CONST_DAY = 3600 * 1000 * 24;
public static void main(String[] args) throws Exception {
SimpleDateFormat input = new SimpleDateFormat("yyyy.MM.dd");
SimpleDateFormat output = new SimpleDateFormat("yyyy年MM月dd日");
// 輸入格式:1991.01.01
// 輸出格式:1991年1月1日比2012年12月12日早X天
String strBefore = "1991.01.01";
Calendar before = Calendar.getInstance();
Calendar after = Calendar.getInstance();
before.setTime(input.parse(strBefore));
int interval = (int) ((after.getTimeInMillis() - before
.getTimeInMillis()) / CONST_DAY);
System.out.println(output.format(before.getTime()) + "比"
+ output.format(after.getTime()) + "早" + interval + "天");
}
}
4. 用java怎麼計算兩個日期之間年數,季度數,月數
這些是確定的數值? 不考慮閏年什麼的?
java.util.Date有方法, getTime(),得到毫秒差,,,,,那兩個時間的毫秒差的結果,再換算成相應的年或季或月
~~~~~~~
5. 用Java判斷一個日期,包括年,月,日三個數,計算這個日期是這一年的第幾天,
可以使用calendar累獲取天數:
已知年月日,直接用年月日構造一個Date或者Calender對象,然後有現成的方法獲得當前日期是所屬年份的第幾天,是當前周的第幾天,當前月的第幾天
比如Calender對象屬性
DAY_OF_YEAR
public static final int DAY_OF_YEAR
get 和 set 的欄位數字,指示當前年中的天數。一年中第一天的值為 1。
6. (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月。
(6)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天
7. java中如何輸出當時的日期和時間
代碼如下:
packagecom.grace.test;
importjava.text.DateFormat;
importjava.text.ParseException;
importjava.text.SimpleDateFormat;
importjava.util.Calendar;
importjava.util.Date;
publicclassshowDate{
publicstaticvoidmain(String[]args)throwsParseException{
Dated=newDate();
Strings=null;
/**輸出格式:MonMay0515:23:58CST2014*/
System.out.println(d);
/**輸出格式:2014-5-5*/
s=DateFormat.getDateInstance().format(d);
System.out.println(s);
/**輸出格式:2014-5-5*/
s=DateFormat.getDateInstance(DateFormat.DEFAULT).format(d);
System.out.println(s);
/**輸出格式:2014年5月5日星期一*/
s=DateFormat.getDateInstance(DateFormat.FULL).format(d);
System.out.println(s);
/**輸出格式:2014-5-5*/
s=DateFormat.getDateInstance(DateFormat.MEDIUM).format(d);
System.out.println(s);
/**輸出格式:14-5-5*/
s=DateFormat.getDateInstance(DateFormat.SHORT).format(d);
System.out.println(s);
/**輸出格式:2014-5-0500:00:00大寫H為24小時制*/
DateFormatsdf=newSimpleDateFormat("yyyy-MM-ddHH:mm:ss");
s=sdf.format(d);
System.out.println(s);
/**輸出格式:2014-5-0500:00:00小寫h為12小時制*/
DateFormatsdf2=newSimpleDateFormat("yyyy-MM-ddhh:mm:ss");
s=sdf2.format(d);
System.out.println(s);
/**輸出格式:20140505000000*/
DateFormatsdf3=newSimpleDateFormat("yyyyMMddHHmmss");
s=sdf3.format(d);
System.out.println(s);
/**字元串轉換城日期格式*/
s=sdf.format(d);
Datetoday=sdf.parse(s);
System.out.println("字元串轉成日期1:"+today);
System.out.println("字元串轉成日期2:"+sdf.format(today));
/**單獨輸出年月日時分秒等*/
Calendarc=Calendar.getInstance();
System.out.println("年:"+c.get(Calendar.YEAR));
//月份從0開始,加1校正
System.out.println("月:"+(c.get(Calendar.MONTH)+1)+"");
System.out.println("日:"+c.get(Calendar.DAY_OF_MONTH));
System.out.println("時:"+c.get(Calendar.HOUR_OF_DAY));
System.out.println("分:"+c.get(Calendar.MINUTE));
System.out.println("秒:"+c.get(Calendar.SECOND));
System.out.println("當前時間毫秒數:"+c.getTimeInMillis());
System.out.println("當前時間:"+c.getTime());
}
}
8. 幫忙用Java編寫一個表示日期中的年月日:
class YourDate{
int year, month, day;
public YourDate(){
}
public YourDate(int y, int m, int d){
}
public boolean isDate(int y, int m, int d){
//
return false;
}
public YourDate addDate(int days){
//
return new YourDate(..., ..., ...);
}
public int dateDiff(YourDate aDate){
//............................
return 0;
}
public String (){
return "yyyy-MM-DD="+year+"-"+month+"-"+day;
}
}
9. JAVA關於得到當前日期兩年後的日期
那些方法都不推薦使用了,所以顯示黃線,這樣可以實現你想要的,你看下吧,希望對你有幫助
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(System.currentTimeMillis());
int currenYear = calendar.get(Calendar.YEAR);
calendar.set(Calendar.YEAR, currenYear + 2);
java.sql.Date newDate = new java.sql.Date(calendar.getTimeInMillis());