Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在android中计算给定两个日期(不包括周末)的日期_Android_Date - Fatal编程技术网

在android中计算给定两个日期(不包括周末)的日期

在android中计算给定两个日期(不包括周末)的日期,android,date,Android,Date,嗨,我是android的新手,在我的应用程序中,我必须从“当前”日期中“减去”给定日期,这很有效 这里我的主要要求是,我不应该计算周末(如周日和周六,公共假日),除了周末,我必须从“当前”日期中“减去”给定日期 请帮我拿一个 我的代码:- 排除周末的想法是使用: if (startCal.get(Calendar.DAY_OF_WEEK) != Calendar.SATURDAY && startCal.get(Calendar.DAY_OF_WEEK) != Calendar

嗨,我是android的新手,在我的应用程序中,我必须从“当前”日期中“减去”给定日期,这很有效

这里我的主要要求是,我不应该计算周末(如周日和周六,公共假日),除了周末,我必须从“当前”日期中“减去”给定日期

请帮我拿一个

我的代码:-
排除周末的想法是使用:

if (startCal.get(Calendar.DAY_OF_WEEK) != Calendar.SATURDAY &&  startCal.get(Calendar.DAY_OF_WEEK) != Calendar.SUNDAY) {
            ++workDays;
        }
使用此功能:

public static int countWorkingDate(Date dateStart, Date dateStop) {
    Calendar startCal = Calendar.getInstance();
    startCal.setTime(dateStart);

    Calendar endCal = Calendar.getInstance();
    endCal.setTime(dateStop);

    int workDays = 0;

    //Return 0 if start and end are the same
    if (startCal.getTimeInMillis() == endCal.getTimeInMillis()) {
        return 0;
    }

    if (startCal.getTimeInMillis() > endCal.getTimeInMillis()) {
        startCal.setTime(dateStop);
        endCal.setTime(dateStart);
    }

    do {
        //excluding start date
        startCal.add(Calendar.DAY_OF_MONTH, 1);
        if (startCal.get(Calendar.DAY_OF_WEEK) != Calendar.SATURDAY && startCal.get(Calendar.DAY_OF_WEEK) != Calendar.SUNDAY) {
            ++workDays;
        }
    } while (startCal.getTimeInMillis() < endCal.getTimeInMillis()); //excluding end date

    return workDays;
}
结果是:
I/System.out:6


我希望它能有所帮助。

排除周末的想法是使用:

if (startCal.get(Calendar.DAY_OF_WEEK) != Calendar.SATURDAY &&  startCal.get(Calendar.DAY_OF_WEEK) != Calendar.SUNDAY) {
            ++workDays;
        }
使用此功能:

public static int countWorkingDate(Date dateStart, Date dateStop) {
    Calendar startCal = Calendar.getInstance();
    startCal.setTime(dateStart);

    Calendar endCal = Calendar.getInstance();
    endCal.setTime(dateStop);

    int workDays = 0;

    //Return 0 if start and end are the same
    if (startCal.getTimeInMillis() == endCal.getTimeInMillis()) {
        return 0;
    }

    if (startCal.getTimeInMillis() > endCal.getTimeInMillis()) {
        startCal.setTime(dateStop);
        endCal.setTime(dateStart);
    }

    do {
        //excluding start date
        startCal.add(Calendar.DAY_OF_MONTH, 1);
        if (startCal.get(Calendar.DAY_OF_WEEK) != Calendar.SATURDAY && startCal.get(Calendar.DAY_OF_WEEK) != Calendar.SUNDAY) {
            ++workDays;
        }
    } while (startCal.getTimeInMillis() < endCal.getTimeInMillis()); //excluding end date

    return workDays;
}
结果是:
I/System.out:6

我希望有帮助