Java Code Examples for java.time.LocalDateTime#getDayOfWeek()

The following examples show how to use java.time.LocalDateTime#getDayOfWeek() . These examples are extracted from open source projects. You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source Project: sailfish-core   File: TestDateUtil.java    License: Apache License 2.0 6 votes vote down vote up
@Test
public void testBusinessGetDateWithCustomWeekends() {
    LocalDateTime currentTime = dateUtil.getDateTime();
    DayOfWeek dayOfWeek = currentTime.getDayOfWeek();
    DayOfWeek customWeekend = DayOfWeek.SUNDAY;
    int toSunday = customWeekend.getValue() - dayOfWeek.getValue();
    String nearestSundayInFuture = "D+" + toSunday;


    LocalDateTime businessDateTime = dateUtil.getBusinessDateTime(nearestSundayInFuture, customWeekend.name());
    assertEquals(DayOfWeek.MONDAY, businessDateTime.getDayOfWeek());

    String nearestSundayInPast = "D-" + Math.min(dayOfWeek.getValue(), 6);
    businessDateTime = dateUtil.getBusinessDateTime(nearestSundayInPast, customWeekend.name());
    assertEquals(DayOfWeek.SATURDAY, businessDateTime.getDayOfWeek());
}
 
Example 2
/**
 * 取引を行う時刻かどうか判断します
 * @param jstDateTime
 * @return
 */
public boolean isMarketOpenedTradable(LocalDateTime jstDateTime) {
    switch (jstDateTime.getDayOfWeek()) {
        case TUESDAY:
        case WEDNESDAY:
        case THURSDAY:
        case FRIDAY:
            return true;
        case MONDAY:
            return jstDateTime.toLocalTime().isBefore(startTradeMonday) ? false : true;
        case SATURDAY:
            if (MarketTimeUtility.isNYCSummer(jstDateTime.toLocalDate())) {
                return jstDateTime.toLocalTime().isAfter(stopTradeSaturdaySummer) ? false : true;
            } else {
                return jstDateTime.toLocalTime().isAfter(stopTradeSaturdayWinter) ? false : true;
            }
        case SUNDAY:
            return false;
        default:
            return false;
    }
}
 
Example 3
Source Project: FX-AlgorithmTrading   File: MarketTimeUtility.java    License: MIT License 6 votes vote down vote up
/**
 * MarketがOpenしている時間かどうか判断します
 *
 * @param jstDateTime
 * @return
 */
public static boolean isMarketOpened(LocalDateTime jstDateTime) {
    switch (jstDateTime.getDayOfWeek()) {
        case TUESDAY:
        case WEDNESDAY:
        case THURSDAY:
        case FRIDAY:
            return true;
        case MONDAY:
            if (isNYCSummer(jstDateTime.toLocalDate())) {
                return jstDateTime.toLocalTime().isBefore(OPEN_WEEEK_MONDAY_SUMMER) ? false : true;
            } else {
                return jstDateTime.toLocalTime().isBefore(OPEN_WEEEK_MONDAY_WINTER) ? false : true;
            }
        case SATURDAY:
            if (isNYCSummer(jstDateTime.toLocalDate())) {
                return jstDateTime.toLocalTime().isAfter(CLOSE_WEEEK_SATURDAY_SUMMER) ? false : true;
            } else {
                return jstDateTime.toLocalTime().isAfter(CLOSE_WEEEK_SATURDAY_WINTER) ? false : true;
            }
        case SUNDAY:
            return false;
        default:
            return false;
    }
}
 
Example 4
@Test
@Tag("PASSING")
@Order(5)
public void verifyDayOfWeek() {

    LocalDateTime tOJDateTime = LocalDateTime.now(terminatorOriginalJudgementDay);

    // TODO: Replace the null below to get the Day Of Week from the tOJDateTime.
    //  Check: java.time.LocalDateTime.getDayOfWeek()
    DayOfWeek dayOfWeek = tOJDateTime.getDayOfWeek();

    assertEquals(DayOfWeek.FRIDAY,
            dayOfWeek,
            "The day of the week enumeration should match Friday.");
}
 
Example 5
Source Project: sailfish-core   File: DateUtil.java    License: Apache License 2.0 5 votes vote down vote up
private LocalDateTime getBusinessDateTime(LocalDateTime original, LocalDateTime modified, Collection<DayOfWeek> weekends) {
    LocalDateTime after = DateTimeUtility.toLocalDateTime(modified);
    LocalDateTime iter = DateTimeUtility.toLocalDateTime(original);

    boolean past = false;

    if (after.isBefore(iter)) {
        past = true;
    }

    int counter = past ? -1 : 1;

    while (past ? !iter.toLocalDate().isBefore(after.toLocalDate()) : !iter.toLocalDate().isAfter(after.toLocalDate())) {

        DayOfWeek dayOfWeek = iter.getDayOfWeek();
        if(weekends.contains(dayOfWeek)) {
            after = after.plusDays(counter);
        }

        iter = iter.plusDays(counter);
        if (logger.isDebugEnabled()) {
            logger.debug("{} : {}  {}", iter.isAfter(after), iter, after);
        }
    }

    return after;
}
 
Example 6
Source Project: FX-AlgorithmTrading   File: MarketTimeUtility.java    License: MIT License 5 votes vote down vote up
/**
 * 次の Market Open 時刻を取得します
 * @param jstDateTime
 * @return
 */
public static LocalDateTime getNextOpenTime(LocalDateTime jstDateTime) {
    // まずSummerで計算する
    LocalDateTime nextOpenTime = LocalDateTime.of(jstDateTime.getYear(), jstDateTime.getMonth(), jstDateTime.getDayOfMonth(),
            OPEN_WEEEK_MONDAY_SUMMER.getHour(), OPEN_WEEEK_MONDAY_SUMMER.getMinute());
    while (nextOpenTime.getDayOfWeek() != DayOfWeek.MONDAY) {
        nextOpenTime = nextOpenTime.plusDays(1);
    }
    // 日付が確定したら夏冬判定する
    if (isNYCSummer(nextOpenTime.toLocalDate())) {
        return nextOpenTime;
    } else {
        return nextOpenTime.withHour(OPEN_WEEEK_MONDAY_WINTER.getHour());
    }
}
 
Example 7
Source Project: JavaMainRepo   File: Dove.java    License: Apache License 2.0 5 votes vote down vote up
@Override
public double getPredisposition() {
	LocalDateTime dt = LocalDateTime.now();
	if (dt.getDayOfWeek() == DayOfWeek.MONDAY) {
		// pigeons hate mondays apparently
		return 1.0;
	}
	return 0.0;
}
 
Example 8
Source Project: java8-tutorial   File: LocalDateTime1.java    License: MIT License 5 votes vote down vote up
public static void main(String[] args) {

        LocalDateTime sylvester = LocalDateTime.of(2014, Month.DECEMBER, 31, 23, 59, 59);

        DayOfWeek dayOfWeek = sylvester.getDayOfWeek();
        System.out.println(dayOfWeek);      // WEDNESDAY

        Month month = sylvester.getMonth();
        System.out.println(month);          // DECEMBER

        long minuteOfDay = sylvester.getLong(ChronoField.MINUTE_OF_DAY);
        System.out.println(minuteOfDay);    // 1439

        Instant instant = sylvester
                .atZone(ZoneId.systemDefault())
                .toInstant();

        Date legacyDate = Date.from(instant);
        System.out.println(legacyDate);     // Wed Dec 31 23:59:59 CET 2014


        DateTimeFormatter formatter =
                DateTimeFormatter
                        .ofPattern("MMM dd, yyyy - HH:mm");

        LocalDateTime parsed = LocalDateTime.parse("Nov 03, 2014 - 07:13", formatter);
        String string = parsed.format(formatter);
        System.out.println(string);     // Nov 03, 2014 - 07:13
    }
 
Example 9
Source Project: FX-AlgorithmTrading   File: TimerChecker.java    License: MIT License 4 votes vote down vote up
/**
 * TImerの更新をチェックします。
 *
 * @param updateDateTime
 */
public synchronized void checkTime(LocalDateTime updateDateTime) {
    LocalDateTime nextDateTime1min = nextDateTimeMap.get(SHORTEST_PERIOD);

    // 最小更新間隔である1分の更新をチェックして、更新がなければ全部更新しない
    if (updateDateTime.isBefore(nextDateTime1min)) {
        return;
    }

    // Market Close 時間帯は更新しない
    if (!MarketTimeUtility.isMarketOpened(nextDateTime1min)) {
        // 次のOpen時刻まで進める
        putForwardTimeToNext(MarketTimeUtility.getNextOpenTime(nextDateTime1min));
        return;
    }

    // 土曜日は Market Close 15分前に WEEK_ENDイベントを送信する
    if (!onWeekend && updateDateTime.getDayOfWeek() == DayOfWeek.SATURDAY) {
        LocalTime closeTime = MarketTimeUtility.getCloseWeekTimeSaturday(updateDateTime.toLocalDate());
        if(!updateDateTime.toLocalTime().isBefore(closeTime.minusMinutes(WEEKEND_BEFORE_MINUTES))) {
            onWeekend = true;
            eventGenarator.sendWeekEndEvent(nextDateTime1min);
        }
    } else if (onWeekend && updateDateTime.getDayOfWeek() == DayOfWeek.MONDAY) {
        // 月曜はStart時刻に開始イベントを送信する
        LocalTime openTime = MarketTimeUtility.getOpenWeekTimeMonday(updateDateTime.toLocalDate());
        if(!updateDateTime.toLocalTime().isBefore(openTime)) {
            onWeekend = false;
            eventGenarator.sendWeekStartEvent(nextDateTime1min);
        }
    }

    // 各基準時刻を進める
    for (Period period : TIMER_PERIODS) {
        LocalDateTime lastDateTime = lastDateTimeMap.get(period);
        LocalDateTime nextDateTime = nextDateTimeMap.get(period);
        // 5min以降の比較用
        LocalDateTime lastDateTime1min = lastDateTimeMap.get(SHORTEST_PERIOD);

        // 現在時刻が次の更新予定時刻以降
        if (!updateDateTime.isBefore(nextDateTime)) {
            // その時刻のMIN_1が更新されていなければ抜ける(先にMIN_1を更新する)
            if (period != SHORTEST_PERIOD && lastDateTime1min.isBefore(nextDateTime)) {
                return;
            }

            // 更新時刻、次回時刻を設定
            lastDateTime = nextDateTime;
            if (period != Period.DAILY) {
                nextDateTime = nextDateTime.plus(period.getTimeInverval(), period.getChronoUnit());
            } else {
                nextDateTime = culcurateNextDailyUpdate(nextDateTime.toLocalDate());
            }
            sendTimerEvent(period, lastDateTime, nextDateTime);

            // LocalDateTime は immutable なので入れなおす
            lastDateTimeMap.put(period, lastDateTime);
            nextDateTimeMap.put(period, nextDateTime);
        } else {
            // 更新が無い場合、より長い時刻は更新しない
            return;
        }
    }
}
 
Example 10
@Test
public void get_day_of_week_java8 () {
	
	LocalDate date = LocalDate.of(2014, Month.APRIL, 4);
	
	DayOfWeek dayOfWeek = date.getDayOfWeek();
	
	assertEquals(DayOfWeek.FRIDAY, dayOfWeek);
	
	// or 
	int dayOfWeek2 = dayOfWeek.get(ChronoField.DAY_OF_WEEK);
	
	assertEquals(DayOfWeek.FRIDAY.getValue(), dayOfWeek2);
	
	// or
	LocalDateTime localDateTime = LocalDateTime.of(2014, Month.APRIL, 4, 5, 4);
	
	DayOfWeek dayOfWeek3 = localDateTime.getDayOfWeek();
	
	assertEquals(DayOfWeek.FRIDAY, dayOfWeek3);
	
}