java 如何获取前时间的日期,比如两个月前的日期

          原理:

1.用当前时间去设置日历,

2.通过日历去获取两个月前的日期,在转换成两个月前的时间,

3.用获取的时间去设置你想要的。          


                 Date da = new Date();//获取当前时间

Calendar calendar = Calendar.getInstance(); //得到日历
calendar.setTime(da);//把当前时间赋给日历
calendar.add(calendar.MONTH, -2);  //设置为前2月
da = calendar.getTime();//获取2个月前的时间
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 基于Java日期计算非常简单,可以使用java.util.Calendar类。可以把两个日期转换为毫秒,然后计算它们之间的毫秒差,然后根据工作日的时间(比如8小时)计算出工作日天数: long daysBetween = (date2.getTimeInMillis() - date1.getTimeInMillis())/(1000*60*60*24); long workDaysBetween = daysBetween - (daysBetween/7)*2; ### 回答2: 实现两个日期之间的工作日天数可以使用Java日期处理类库来进行计算。以下是一个简单的实现: ```java import java.time.DayOfWeek; import java.time.LocalDate; public class WorkingDaysCalculator { public static int calculateWorkingDays(LocalDate startDate, LocalDate endDate) { int workingDays = 0; LocalDate currentDate = startDate; while (!currentDate.isAfter(endDate)) { if (currentDate.getDayOfWeek() != DayOfWeek.SATURDAY && currentDate.getDayOfWeek() != DayOfWeek.SUNDAY) { workingDays++; } currentDate = currentDate.plusDays(1); } return workingDays; } public static void main(String[] args) { LocalDate startDate = LocalDate.of(2022, 1, 1); // 起始日期 LocalDate endDate = LocalDate.of(2022, 1, 10); // 结束日期 int workingDays = calculateWorkingDays(startDate, endDate); System.out.println("工作日天数:" + workingDays); } } ``` 该代码中,首先使用`LocalDate`类来表示起始日期和结束日期。然后通过一个`while`循环,从起始日期依次遍历到结束日期。在循环中,判断当日期是否为周六或周日,如果不是,则将工作日天数加1。最后返回计算得到的工作日天数。在`main`方法中,我们提供了一个示例来计算2022年11日到2022年110日之间的工作日天数,并将结果输出到控制台。 该代码的核心思想是使用循环和条件判断来筛选出工作日,并计算其数量。注意,此处假设周六和周日为非工作日。 ### 回答3: 要计算两个日期之间的工作日天数,我们可以按照以下步骤来实现: 1. 首先,创建一个函数,接受两个日期作为参数。假设日期的格式为"yyyy-MM-dd"。 2. 在函数内部,通过Java提供的日期处理类,将传入的日期字符串转换为日期对象。可以使用`SimpleDateFormat`类来实现。 3. 使用日期对象的`getTime()`方法获取日期的毫秒数,并计算两个日期之间的毫秒差。 4. 将毫秒差转换为天数。可以使用以下公式: `天数 = 毫秒差 / (24 * 60 * 60 * 1000)` 5. 创建一个循环,从开始日期循环遍历到结束日期,每次遍历加1天。 6. 在循环中使用`Calendar`类的`get(Calendar.DAY_OF_WEEK)`方法获取日期是星期几。根据星期几判断是否为工作日。星期一到星期五为工作日。 7. 统计工作日的天数,使用一个计数器变量。 8. 返回工作日的天数。 以下是具体的实现代码: ```java import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; public class WorkingDaysCalculator { public static int calculateWorkingDays(String startDate, String endDate) { int workingDays = 0; SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); try { Date start = sdf.parse(startDate); Date end = sdf.parse(endDate); Calendar startCal = Calendar.getInstance(); startCal.setTime(start); Calendar endCal = Calendar.getInstance(); endCal.setTime(end); while (!startCal.after(endCal)) { int dayOfWeek = startCal.get(Calendar.DAY_OF_WEEK); if (dayOfWeek != Calendar.SATURDAY && dayOfWeek != Calendar.SUNDAY) { workingDays++; } startCal.add(Calendar.DAY_OF_MONTH, 1); } } catch (ParseException e) { e.printStackTrace(); } return workingDays; } public static void main(String[] args) { String startDate = "2022-01-01"; String endDate = "2022-01-10"; int workingDays = calculateWorkingDays(startDate, endDate); System.out.println("工作日天数: " + workingDays); } } ``` 在`main`方法中,我们可以直接调用`calculateWorkingDays`函数,传入起始日期和结束日期的字符串,然后打印工作日天数。在这个例子中,起始日期为"2022-01-01",结束日期为"2022-01-10"。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值