@Override public void init() {
        // 234 : 402 => 0.5820895522
        // 402 : 234 => 1.7179487179
        dayLeft    = SplitFlapBuilder.create().prefWidth(146).prefHeight(250).flipTime(300).selection(SplitFlap.ALPHA).textColor(Color.WHITESMOKE).build();
        dayMid     = SplitFlapBuilder.create().prefWidth(146).prefHeight(250).flipTime(300).selection(SplitFlap.ALPHA).textColor(Color.WHITESMOKE).build();
        dayRight   = SplitFlapBuilder.create().prefWidth(146).prefHeight(250).flipTime(300).selection(SplitFlap.ALPHA).textColor(Color.WHITESMOKE).build();

        dateLeft   = SplitFlapBuilder.create().prefWidth(146).prefHeight(250).flipTime(300).selection(SplitFlap.NUMERIC).textColor(Color.WHITESMOKE).build();
        dateRight  = SplitFlapBuilder.create().prefWidth(146).prefHeight(250).flipTime(300).selection(SplitFlap.NUMERIC).textColor(Color.WHITESMOKE).build();

        monthLeft  = SplitFlapBuilder.create().prefWidth(146).prefHeight(250).flipTime(300).selection(SplitFlap.ALPHA).textColor(Color.WHITESMOKE).build();
        monthMid   = SplitFlapBuilder.create().prefWidth(146).prefHeight(250).flipTime(300).selection(SplitFlap.ALPHA).textColor(Color.WHITESMOKE).build();
        monthRight = SplitFlapBuilder.create().prefWidth(146).prefHeight(250).flipTime(300).selection(SplitFlap.ALPHA).textColor(Color.WHITESMOKE).build();

        hourLeft   = SplitFlapBuilder.create().prefWidth(200).prefHeight(343).flipTime(300).selection(SplitFlap.TIME_0_TO_5).textColor(Color.WHITESMOKE).build();
        hourRight  = SplitFlapBuilder.create().prefWidth(200).prefHeight(343).flipTime(300).selection(SplitFlap.TIME_0_TO_9).textColor(Color.WHITESMOKE).build();
        minLeft    = SplitFlapBuilder.create().prefWidth(200).prefHeight(343).flipTime(300).selection(SplitFlap.TIME_0_TO_5).textColor(Color.WHITESMOKE).build();
        minRight   = SplitFlapBuilder.create().prefWidth(200).prefHeight(343).flipTime(300).selection(SplitFlap.TIME_0_TO_9).textColor(Color.WHITESMOKE).build();
        secLeft    = SplitFlapBuilder.create().prefWidth(200).prefHeight(343).flipTime(300).selection(SplitFlap.TIME_0_TO_5).textColor(Color.ORANGERED).build();
        secRight   = SplitFlapBuilder.create().prefWidth(200).prefHeight(343).flipTime(300).selection(SplitFlap.TIME_0_TO_9).textColor(Color.ORANGERED).build();
        lastTimerCall = System.nanoTime();
        timer = new AnimationTimer() {
            @Override public void handle(long now) {
                if (now > lastTimerCall + 500_000_000l) {
                    String day = WEEK_DAYS[LocalDateTime.now().getDayOfWeek().getValue()];
                    if (day.equals("SAT") || day.equals("SUN")) {
                        if (!dayLeft.getTextColor().equals(Color.CRIMSON)) {
                            dayLeft.setTextColor(Color.CRIMSON);
                            dayMid.setTextColor(Color.CRIMSON);
                            dayRight.setTextColor(Color.CRIMSON);
                        }
                    } else {
                        if (!dayLeft.getText().equals(Color.WHITESMOKE)) {
                            dayLeft.setTextColor(Color.WHITESMOKE);
                            dayMid.setTextColor(Color.WHITESMOKE);
                            dayRight.setTextColor(Color.WHITESMOKE);
                        }
                    }
                    dayLeft.setText(day.substring(0, 1));
                    dayMid.setText(day.substring(1, 2));
                    dayRight.setText(day.substring(2));

                    date = LocalDateTime.now().getDayOfMonth();
                    String dateString = Integer.toString(date);
                    if (date < 10) {
                        dateLeft.setText("0");
                        dateRight.setText(dateString.substring(0, 1));
                    } else {
                        dateLeft.setText(dateString.substring(0, 1));
                        dateRight.setText(dateString.substring(1));
                    }

                    String month = MONTHS[LocalDateTime.now().getMonthValue()];
                    monthLeft.setText(month.substring(0, 1));
                    monthMid.setText(month.substring(1, 2));
                    monthRight.setText(month.substring(2));

                    hours = LocalDateTime.now().getHour();
                    String hourString = Integer.toString(hours);
                    if (hours < 10) {
                        hourLeft.setText("0");
                        hourRight.setText(hourString.substring(0, 1));
                    } else {
                        hourLeft.setText(hourString.substring(0, 1));
                        hourRight.setText(hourString.substring(1));
                    }

                    minutes = LocalDateTime.now().getMinute();
                    String minutesString = Integer.toString(minutes);
                    if (minutes < 10) {
                        minLeft.setText("0");
                        minRight.setText(minutesString.substring(0, 1));
                    } else {
                        minLeft.setText(minutesString.substring(0, 1));
                        minRight.setText(minutesString.substring(1));
                    }

                    seconds = LocalDateTime.now().getSecond();
                    String secondsString = Integer.toString(seconds);
                    if (seconds < 10) {
                        secLeft.setText("0");
                        secRight.setText(secondsString.substring(0, 1));
                    } else {
                        secLeft.setText(secondsString.substring(0, 1));
                        secRight.setText(secondsString.substring(1));
                    }
                    lastTimerCall = now;
                }
            }
        };
    }