Skip to content

gzeinnumer/WeekendDetection

Repository files navigation

WeekendDetection

String start_date = "2022-10-01";
String end_date = "2022-10-30";

ArrayList<String> dateRange = WeekendDetection.getDateRange(start_date, end_date);
Log.d(TAG, "all: " + dateRange);

ArrayList<String> weekend = new ArrayList<>();

weekend.add("2022-10-01");
weekend.add("2022-10-02");
weekend.add("2022-10-08");
weekend.add("2022-10-09");
weekend.add("2022-10-15");
weekend.add("2022-10-16");
weekend.add("2022-10-22");
weekend.add("2022-10-23");
weekend.add("2022-10-29");
weekend.add("2022-10-30");

ArrayList<String> dateNoWeekend = WeekendDetection.getDateRangeNoWeekend(weekend, start_date, end_date);
Log.d(TAG, "libur: " + dateNoWeekend);
public class WeekendDetection {

    public static ArrayList<String> getDateRangeNoWeekend(ArrayList<String> weekend, String start_date, String end_date) {
        ArrayList<String> res = getDateRange(start_date, end_date);

        for (int i = 0; i < weekend.size(); i++) {
            res.remove(weekend.get(i));
        }

        return res;
    }

    public static ArrayList<String> getDateRange(String start_date, String end_date) {
        ArrayList<String> res = new ArrayList<>();

        try {
            @SuppressLint("SimpleDateFormat")
            DateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");

            Date startDate= formatter.parse(start_date);
            Date endDate= formatter.parse(end_date);

            List<Date> dates = new ArrayList<>();

            long interval = 24 * 1000 * 60 * 60;
            long endTime = endDate != null ? endDate.getTime() : 0;
            long curTime = startDate != null ? startDate.getTime() : 0;
            while (curTime <= endTime) {
                dates.add(new Date(curTime));
                curTime += interval;
            }
            for (int i = 0; i < dates.size(); i++) {
                String result = formatter.format(dates.get(i));
                res.add(result);
            }
            return res;

        } catch (ParseException e) {
            e.printStackTrace();
            return res;
        }
    }
}

Copyright 2022 M. Fadli Zein

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages