GirisH
GirisH

Reputation: 1

How to skip Weekend (Sat & Sun) from whole month calendar

Trying to skip weekend days from month calendar

Calendar cal = Calendar.getInstance();
int dayOfMonth = cal.get(Calendar.DAY_OF_MONTH);
for (int i = 0; i < dayOfMonth; i++) {
    id("prevDayTrackButton").click();
    Thread.sleep(1000);
}

Upvotes: 0

Views: 397

Answers (4)

Shravan40
Shravan40

Reputation: 9898

int dayOfWeek = cal.get (Calendar.DAY_OF_WEEK);
boolean isWeekday = ((dayOfWeek >= Calendar.MONDAY) && (dayOfWeek <= Calendar.FRIDAY));

isWeekday will be false if the day of the week is Saturday or Sunday.

Upvotes: 2

Anonymous
Anonymous

Reputation: 86286

java.time

    LocalDate today = LocalDate.now(ZoneId.of("Pacific/Wallis"));
    for (LocalDate d = today.withDayOfMonth(1); d.isBefore(today); d = d.plusDays(1)) {
        DayOfWeek dow = d.getDayOfWeek();
        if (! dow.equals(DayOfWeek.SATURDAY) && ! dow.equals(DayOfWeek.SUNDAY)) {
            id("prevDayTrackButton").click();
            TimeUnit.SECONDS.sleep(1);
        }
    }

If you fancy using a stream operation:

    today.withDayOfMonth(1)
            .datesUntil(today)
            .filter(d -> ! d.getDayOfWeek().equals(DayOfWeek.SATURDAY)
                            && ! d.getDayOfWeek().equals(DayOfWeek.SUNDAY))
            .forEach(d -> {
                id("prevDayTrackButton").click();
                TimeUnit.SECONDS.sleep(1);
            });

I don’t think it buys us anything in this case, though.

The Calendar class that you used is long outdated and poorly designed. Instead I am using java.time, the modern Java date and time API.

Link: Oracle tutorial: Date Time explaining how to use java.time.

Upvotes: 0

js_248
js_248

Reputation: 2112

Calendar cal = Calendar.getInstance();
boolean isWeekend;
if(cal.get(Calendar.DAY_OF_WEEK) == Calendar.SUNDAY || 
      cal.get(Calendar.DAY_OF_WEEK) == Calendar.SATURDAY) {
     isWeekend = true;
}

Upvotes: 0

SatyaTNV
SatyaTNV

Reputation: 4135

    LocalDate myDate = LocalDate.of(2019, 4, 13);//LocalDate.parse("2019-04-13");
    DayOfWeek dayOfWeek = myDate.getDayOfWeek();
    int dayOfWeekIntValue = dayOfWeek.getValue();
    System.out.println(dayOfWeekIntValue);
    String dayOfWeekName = dayOfWeek.name();
    System.out.println(dayOfWeekName);
    boolean isWeekday = (dayOfWeekIntValue >= 1 && dayOfWeekIntValue <= 5);//Day is between MONDAY and FRIDAY, return true
    System.out.println(isWeekday);

Instead of old Date class use LocalDate.

Upvotes: 0

Related Questions