计算工龄原则:若是2000-10-12作为开始工作时间,则到下一年的2001-10-13算为一年。有个bug,不满一年的工龄是错误的。

import java.util.Date;
import java.util.Calendar;
public int workAge(Date nowTime, Date workTime){
int year = 0;
//当前时间的年月日
Calendar cal = Calendar.getInstance();
cal.setTime(nowTime);
int nowYear = cal.get(Calendar.YEAR);
int nowMonth = cal.get(Calendar.MONTH);
int nowDay = cal.get(Calendar.DAY_OF_MONTH); //开始工作时间的年月日
cal.setTime(workTime);
int workYear = cal.get(Calendar.YEAR);
int workMonth = cal.get(Calendar.MONTH);
int workDay = cal.get(Calendar.DAY_OF_MONTH); //得到工龄
year = nowYear - workYear; //得到年差
//若目前月数少于开始工作时间的月数,年差-1
if (nowMonth < workMonth){
year = year - 1;
}else if (nowMonth == workMonth){
//当月数相等时,判断日数,若当月的日数小于开始工作时间的日数,年差-1
if (nowDay < workDay){
year = year - 1;
}
} return year;
}

java计算工龄的更多相关文章

  1. 用Java计算某个日期100天后的日期

    用Java计算日期时间,首先考虑到时间类,Java中提供的和时间日期相关的类里,有一个Calendar类,可以获取某个时间日期. 计算某个日期100天后的日期,思路如下: 1.先设定时间,例如2017 ...

  2. java计算两个日期相差多少天

    java计算两个日期相差多少天 public class DateUtil{ public static int betweenDays(Date startDate, Date endDate ) ...

  3. Java计算计算活了多少天

    Java计算计算活了多少天 思路: 1.输入你的出现日期: 2.利用日期转换,将字符串转换成date类型 3.然后将date时间换成毫秒时间 4.然后获取当前毫秒时间: 5.最后计算出来到这个时间多少 ...

  4. 【转】Java计算文件的hash值

    原文地址:http://blog.csdn.net/qq_25646191/article/details/78863110 如何知道一个文件是否改变了呢?当然是用比较文件hash值的方法,文件has ...

  5. Java计算两个字符串日期之间的天数差

    Java计算两个字符串日期之间的天数差 调用方法: public static void main(String[] args) throws ParseException { String a = ...

  6. Java 计算n对应的二进制位上有几个1,分别在什么位置

    Java计算n的二进制位上有几个1,分别在什么位置   public List<Integer> getBinOneCount(int n){     List<Integer> ...

  7. 使用java计算数组方差和标准差

    使用java计算数组方差和标准差 觉得有用的话,欢迎一起讨论相互学习~Follow Me 首先给出方差和标准差的计算公式 代码 public class Cal_sta { double Sum(do ...

  8. Java 计算加几个月之后的时间

    Java 计算加几个月之后的时间 public static Date getAfterMonth(String inputDate,int number) { Calendar c = Calend ...

  9. java计算组合数

    import java.util.Scanner; public class Zuheshu { //计算m阶乘    public static int Fun(int m){     int su ...

随机推荐

  1. PAT——1021. 个位数统计

    给定一个k位整数N = dk-1*10k-1 + ... + d1*101 + d0 (0<=di<=9, i=0,...,k-1, dk-1>0),请编写程序统计每种不同的个位数字 ...

  2. MRC 和 ARC 混编

    在targets的build phases选项下Compile Sources下选择要不使用arc编译的文件,双击它,输入 -fno-objc-arc 即可   MRC工程中也可以使用ARC的类.方法 ...

  3. 当面试官问你sql优化的时候。。。

    当面试官问你有关sql优化的问题时,直接拿笔写给他: 8-select 9-distinct<column_list> 1-from left_table 3-<join_type& ...

  4. linux 进程间通信方式

    管道: 它包括无名管道和有名管道两种,前者用于父进程和子进程间的通信,后者用于运行于同一台机器上的任意两个进程间的通信消息队列: 用于运行于同一台机器上的进程间通信,它和管道很相似,是一个在系统内核中 ...

  5. 触发器 of oracle

    . 本文实例讲述了Oracle触发器用法.分享给大家供大家参考,具体如下: 一.触发器简介 触发器的定义就是说某个条件成立的时候,触发器里面所定义的语句就会被自动的执行. 因此触发器不需要人为的去调用 ...

  6. Java中 方法的多态 简析图

    代码如下: public class Client{    public static void main(String[] args){        Person p = new Person() ...

  7. 如何用GDI+画个验证码

    如何使用GDI+来制作一个随机的验证码 绘制验证码之前先要引用 using System.Drawing; using System.Drawing.Drawing2D; 首先,先写一个方法来取得验证 ...

  8. Bootstrap04

    Bootstrap04概述 一.输入框组 1.左侧添加文字 <div class="input-group"> <span class="input-g ...

  9. Redis之配置文件redis.conf

    解读下 redis.conf 配置文件中常用的配置项,为不显得过于臃长,已选择性删除原配置文件中部分注释. # Redis must be started with the file path as ...

  10. Delphi高效定制格式的FormatDateTime

    本人根据歼10博主的此博文的思路进行改进,目的是高效的实现FormatDateTime('YYYY-MM-DD HH:NN:SS.ZZZ', Now); 在DelphiXE3 32Bits环境测试10 ...