javajavafxpersian-calendar

How to implement Persian Calendar


Is there any implementation of Persian calendar DatePicker on JavaFx?

There is no Persian chronology to use on DatePicker to achieve a Persian calendar


Solution

  • I have now developed a ready-to-use calendar picker which also offers a persian calendar. It was originally inspired by the nice work of Christian Schudt, but completely rewritten and enhanced. Just download my library Time4J-v4.20 (or later, available in Maven) and use this code demo:

    CalendarPicker<PersianCalendar> picker = picker.persianWithSystemDefaults();
    
    picker.setLengthOfAnimations(Duration.seconds(0.7));
    picker.setShowInfoLabel(true);
    picker.setLocale(new Locale("fa", "IR"));
    picker.setShowWeeks(true);
    
    picker.setCellCustomizer(
      (cell, column, row, model, date) -> {
        if (CellCustomizer.isWeekend(column, model)) {
          cell.setStyle("-fx-background-color: #FFE0E0;");
          cell.setDisable(true);
        }
      }
    );
    

    You can also set other properties like minimum and maximum date. Here an example image using Farsi language and a localized week model for Iran. You can navigate through all Persian months, years or decades (by clicking on the header) or jump to current date (by clicking on the footer).

    enter image description here