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