Reputation: 1
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
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
Reputation: 86286
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
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
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