java时间相减得年(java 日期减去天数)

本篇文章给大家谈谈java时间相减得年,以及java 日期减去天数对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

1、java 两个时间相减2、java实现两个时间相减得到年月3、java实现两个时间相减,得到这个时间段是几年?不满1年的也算1年,依次类推,不满2年的算2年,

java 两个时间相减

先转成Date 再获取毫秒数来减

java.text.SimpleDateFormat sdf = new SimpleDateFormat(“yyyy-MM-dd HH:mm:ss”);

java.util.Calendar c = Calendar.getInstance();

String date1 = “2014-10-10 00:00:00”;

String date2 = “2015-10-10 00:00:00”;

c.setTime(sdf.parse(date1));

int y1 = c.get(Calendar.YEAR);

int m1 = c.get(Calendar.MONTH);

c.setTime(sdf.parse(date2));

int y2 = c.get(Calendar.YEAR);

int m2 = c.get(Calendar.MONTH);

int y = Math.abs(y2 – y1);

int m = y * 12 + Math.abs(m1-m2);

long d1 = sdf.parse(date1).getTime();

long d2 = sdf.parse(date2).getTime();

int d = (int) (Math.abs(d2-d1) / (1000 * 60 * 60 * 24));

System.out.println(“相差年: ” + y);

System.out.println(“相差月: ” + m);

System.out.println(“相差天: ” + d);

java时间相减得年(java 日期减去天数)

java实现两个时间相减得到年月

大概判断了一下,比较粗糙,仅供参考。

private static void function17() throws Exception {

        Scanner sc=new Scanner(System.in);

        SimpleDateFormat sdf=new SimpleDateFormat(“yyyy-MM-dd”);

        System.out.println(“请输入起始时间”);

        Date date1=sdf.parse(sc.next());

        System.out.println(“请输入截止时间”);

        Date date2=sdf.parse(sc.next());

        long time1=date1.getTime();

        long time2=date2.getTime();

        long time=(time2-time1)/1000;

        long year=time/(24*3600*365);

        long month=time%(24*3600*365)/(24*3600*30);

        if(year0){

            System.out.println(year+”年”+month+”月”);

        }else{

            System.out.println(month+”月”);

        }

    }

java实现两个时间相减,得到这个时间段是几年?不满1年的也算1年,依次类推,不满2年的算2年,

import java.text.ParseException;

import java.util.Calendar;

import java.util.Scanner;

/*

 * 需求:java实现两个时间相减,得到这个时间段是几年?不满1年的也算1年,依次类推,不满2年的算2年

 * 

 * PS:我是菜鸟,东拼四凑弄出来这个。大概思路是这样,健壮性判断和bug、优化代码就靠你自己了

 * 

 * 健壮性判断:输入2015-5-6-7或2015-5-50此两类格式都不会报错,都出结果了

 * 

 * 弄好之后,希望你能贴出来,私聊发给我,谢谢

 */

public class Demo3 {

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

// 键盘输入日期

Scanner in = new Scanner(System.in);

System.out.print(“请输入时间,格式为【年-月-日】”);

String s1 = in.next();

System.out.print(“请输入另一个时间,格式为【年-月-日】”);

String s2 = in.next();

// String的split方法切割字符串,返回字符串数组

String[] str_arr1 = new String[3];

str_arr1 = s1.split(“-“);

String[] str_arr2 = new String[3];

str_arr2 = s2.split(“-“);

int[] int_arr1 = new int[str_arr1.length];

int[] int_arr2 = new int[str_arr2.length];

// 字符串数组转为int数组,因为Calendar的set方法只能传int参数

toInt(int_arr1, str_arr1);

toInt(int_arr2, str_arr2);

Calendar c1 = Calendar.getInstance();

c1.set(int_arr1[0], int_arr1[1], int_arr1[2]);

Calendar c2 = Calendar.getInstance();

c2.set(int_arr2[0], int_arr2[1], int_arr2[2]);

if (c1.compareTo(c2)  0) {

offset(c1, c2);

} else {

Calendar temp = c1;

c1 = c2;

c2 = temp;

offset(c1, c2);

}

in.close();

}

private static void toInt(int[] int_arr, String[] str_arr) {

for (int i = 0; i  int_arr.length; i++) {

int_arr[i] = Integer.parseInt(str_arr[i]);

}

}

// 计算偏差

public static void offset(Calendar c1, Calendar c2) {

int year = c1.get(Calendar.YEAR) – c2.get(Calendar.YEAR);

int month_year = 0, day_year = 0;

if (c1.get(Calendar.MONTH)  c2.get(Calendar.MONTH)) {

month_year = 1;

} else if (c1.get(Calendar.DAY_OF_MONTH) != c2

.get(Calendar.DAY_OF_MONTH)) {

day_year = 1;

}

System.out.println(“时间差有” + (year + month_year + day_year) + “年”);

}

}

java时间相减得年的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java 日期减去天数、java时间相减得年的信息别忘了在本站进行查找喔。

本文来自投稿,不代表【】观点,发布者:【

本文地址: ,如若转载,请注明出处!

举报投诉邮箱:253000106@qq.com

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2024年4月3日 17:14:09
下一篇 2024年4月3日 17:22:21

相关推荐

  • linuxc测试程序运行时间,linux检测程序是否开启

    c程序如何通过参数获得linux系统启动时间 linux下:include sys/sysinfo.h 调用sysinfo()获得系统启动以来经历的秒数时间。这个不属于高精度计时。如果要进行高精度计时,高精度时间,C运行库的gettimeofday().(当然据我估计也是受到系统更改时间的影响)。 size_t strftime(char *strDest,…

    2024年5月17日
    4200
  • javaint时间戳,java时间戳会重复吗

    jsp怎么把当前时间(java中数据类型)转换成能在mysql中保存的时间戳(in… 1、将日期转换为时间戳。要将日期转换为时间戳,首先得先获取到日期,这里可以直接指定日期,或者是使用当前日期。要获取当前日期,我们可以使用new Date()来获取。直接上代码。// (1)、将当前日期转换为时间戳。 2、java.util.Date();java…

    2024年5月17日
    4200
  • linux显示时间日期,linux 显示日期

    linux更改时间改完之后显示1970年 1、当你以 root 身分更改了系统时间之后,请记得以 clock -w 来将系统时间写入 CMOS 中,这样下次重新开机时系统时间才会持续抱持最新的正确值。 2、x 显示日期的格式(mm/dd/yy)y 年的最后两个数字( 1999则是99)Y 年(例如:1970,1996等)需要特别说明的是,只有超级用户才能用d…

    2024年5月17日
    3900
  • javaredis有序集合,redis有序集合时间复杂度

    redis怎么存储对象 Redis是Key-Value型内存数据库,不能直接存储对象,如果实体对象可以序列化,可以将序列化后的内容存入一个Value中。 比如可以通过 list 存储一些列表型的数据结构,类似粉丝列表、文章的评论列表之类的东西。 ① 简介:String是Redis最基础的数据结构类型,它是二进制安全的,可以存储数字,图片或者序列化的对象,值最…

    2024年5月17日
    3700
  • excel时间差值,excel 时间差

    excel如何计算时间差? 1、首先打开Excel表格,并在表格单元格中输入好信息。鼠标选中【C2】单元格,并输入公式:=TEXT(B2-A2,h小时m分钟s秒),按回车键。 2、电脑打开要计算时间差的Excel表格。打开Excel表格后,输入公式=TEXT(E3-D3,[h]:mm)。输入公式后,回车就得到两个时间的差了。下拉复制公式,就可以求出所有的时间…

    2024年5月17日
    3900
  • excel下拉菜单选日期,表格下拉选日期

    excel单元格如何设置下拉列表,列表为可选择的日期 1、EXCEL软件中若有日期控件可以插入日期控件来完成。如果没有日期控件的,我们就用另一种方法来实现制作日期下拉菜单。操作方法如下。打开工作表。我们先新建一个工作表来作日期的数据源。然后,输入年,月,日各个日期。 2、首先选中需要设置下拉菜单的单元格或单元格区域 数据—有效性—设置:“允许”下面选“序列”…

    2024年5月17日
    3700
  • linux查询断电时间,linux查看电量

    Linux查看与修改时区、时间的命令 1、目录方法1:使用命令行打开终端应用程序。查看当前时区。查看可选的时区。选择一个大陆或海洋。选择国家。选择一个时区。确认当地时间。确认设置好的时区。 2、inux修改时间命令是date-s+时分秒。修改linux系统时间。root使用date指令:date -s 只修改日期,不修改时间,输入:date -s 2021-…

    2024年5月17日
    3400
  • java得到时间戳,java中时间戳是什么意思

    Java里面怎么获取指定日期的时间戳,比如日期格式是20130304,字符串类型… 在Java中获取14位时间戳可以使用System.currentTimeMillis()方法,该方法返回当前系统时间的毫秒数。 java如何获取当前时间以及格式化需要用到两个类,如下图:获取当前时间,并格式化为(年-月-日 时:分:秒)。 time() 函数返回的…

    2024年5月17日
    3600
  • excel日期数据有效性,excel有效日期格式

    数据有效性在excel哪里 1、点击数据 excel中选择需要设置数据有效性的单元格之后,点击“数据”。打开数据验证 点击“数据验证——数据验证”。设置数据有效性来源 允许中选择“序列”之后,在来源上设施数据有效性的选项,点击确定即可。 2、打开Excel文档,点击数据。点击数据验证。选择允许,弹出浅灰色框,点击上面的整数。编辑最小值1,最大值100。点击右…

    2024年5月17日
    4500
  • utc时间函数linux的简单介绍

    Linux如何使用date命令查看当前的GMT时间? 再次按照默认的格式查看当前的系统时间:[root@linuxprobe ~]# dateTue Sep 1 08:30:01 CST 2016 查看今天是一年中的第几天:[root@linuxprobe ~]# date +%j245 reboot命令用于重启系统,格式为:reboot。 date -u …

    2024年5月17日
    4000

发表回复

登录后才能评论



关注微信