当前位置: 首页 > 面试题库 >

如何在Java中的两个日期之间的除周末,周六或周日之外的每一天获取信息?

邢飞雨
2023-03-14
问题内容

大家好,如果在Java中提供了开始日期和结束日期,那么如何生成日期呢?

像下面这样:

例:如果有start date is 15-04-2012并且end date is 15-06-2012我希望日期与以下类似,则列表应省略saturdaysunday

1.15-04-2012, 2.16-04-2012, 3.17-04-2012, . . . . . .
15-06-2012

我已经完成了以下操作,但是如果日期范围是同一个月,它将生成一个月。`

public static ConcurrentHashMap<String, String> getWorkingDaysMap(int year, int month, int day){
        int totalworkingdays=0,noofdays=0;
        String nameofday = "";
        ConcurrentHashMap<String,String> workingDaysMap = new ConcurrentHashMap<String,String>();
        Map<String,String> holyDayMap = new LinkedHashMap<String,String>();
        noofdays = findNoOfDays(year,month,day);

        for (int i = 1; i <= noofdays; i++) {
            Date date = (new GregorianCalendar(year,month - 1, i)).getTime(); // year,month,day
            SimpleDateFormat f = new SimpleDateFormat("EEEE");
            nameofday = f.format(date);

            String daystr="";
            String monthstr="";

            if(i<10)daystr="0";
            if(month<10)monthstr="0";

            String formatedDate = daystr+i+"/"+monthstr+month+"/"+year;

            if(!(nameofday.equals("Saturday") || nameofday.equals("Sunday"))){
                workingDaysMap.put(formatedDate,formatedDate);
                totalworkingdays++;
            }
        }

        return workingDaysMap;
    }

因此,请为我提供建议。

问候托尼


问题答案:

使用以下乔达时间

import org.joda.time.DateTimeConstants;
import org.joda.time.LocalDate;

public class DatesexcludingWeekend {
    public static void main(String[] args) {
        final LocalDate start = new LocalDate(2012, 06, 15);
        final LocalDate end = new LocalDate(2012, 07, 14);
        LocalDate weekday = start;
        if (start.getDayOfWeek() == DateTimeConstants.SATURDAY|| start.getDayOfWeek() == DateTimeConstants.SUNDAY) {
            weekday = weekday.plusWeeks(1).withDayOfWeek(DateTimeConstants.MONDAY);
        }

        while (weekday.isBefore(end)) {
            System.out.println(weekday);
            if (weekday.getDayOfWeek() == DateTimeConstants.FRIDAY)
                weekday = weekday.plusDays(3);
            else
                weekday = weekday.plusDays(1);
        }
    }


 类似资料:
  • 问题内容: 给定以下日期: 和一个静态变量: 我需要创建一个数组,如: 周末除外。 不,这不是功课…出于某种原因,我今天无法直截了当。 问题答案: 对于PHP> = 5.3.0,请使用DatePeriod类。不幸的是,几乎没有记录。

  • 问题内容: 嗨,我尝试使用此代码进行几天工作(包括周末),因此如何排除两个日期之间的周末? 问题答案: 这对你有用 现场演示 放出

  • 问题内容: 嗨,我正在使用jquery-uidatepicker选择date和date.js来查找两个日期之间的差异。 现在的问题是我想从计算中排除周末(周六和周日)。我该怎么办? 例如,用户选择开始日期(13/8/2010)和结束日期(16/8/2010)。由于14/8/2010和15/8/2010是工作日,而不是总共4天,所以我希望只有2天。 这是即时消息正在使用的代码: 问题答案: 也许其他

  • 在Excel中,如何计算每个星期日2个日期之间的周末数 例如:开始日期为 11/5/2015

  • 问题内容: 我需要计算MySQL中两个日期之间的差异(以天为单位),不包括周末(星期六和星期日)。也就是说,天数差减去两者之间的周六和周日数。 目前,我只是使用以下方法计算天数: 此收益,但我想排除周末,所以我想(因为第3和4、10、11和17日是周末)。 我不知道从哪里开始。我知道该功能和所有相关功能,但是我不知道如何在此上下文中使用它们。 问题答案: 插图: 伪代码:

  • 问题内容: 如何以这种格式从现在开始在Android之前的一周之前获取日期: 例如:现在,一周前 谢谢 问题答案: 解析日期: 然后计算出您需要减去的毫秒数: 或使用该类提供的API : 然后,如果需要,将其转换回字符串: