Obtener el nombre del dia

Obtener el nombre del día

Métodos en DateUtil de la libreria avbravoutils

Devolver una lista

public static List<String> nameDayOfMonth(Integer year, String mes);

Lista con los nombre de los meses

public static List<String> letterDayOfMonth(Integer year, String mes);

Lista con las letras de los meses

public static String firstLetterOfDay(LocalDate date)

Primera letra del mes en base a la fecha

public static String nameOfDay(LocalDate date)

Nombre del día en base a la fecha LocalDate

public static String nameOfDay(Date date)

Nombre del día en base a la fecha Java Date

Ejemplo1: Mostrarlo en un datatable simple. Convertiendo java Date a LocalDate.

Controller

programacionFlotaPojo.setDiaNombre(DateUtil.nameOfDay(v.getFechahorafinreserva()));

Segmento de Código

 case "programacionflota":
                    Bson filter0 = Filters.eq("activo", "si");
                    viajeList = viajeRepository.filterBetweenDatePaginationWithoutHours(filter0, "fechahorainicioreserva", lookupServices.getFechaDesde(), "fechahorafinreserva", lookupServices.getFechaHasta(), page, rowPage, new Document("idviaje", -1));
                    if (viajeList == null || viajeList.isEmpty()) {

                    } else {
                        for (Viaje v : viajeList) {
                            ProgramacionFlotaPojo programacionFlotaPojo = new ProgramacionFlotaPojo();
                            programacionFlotaPojo.setIdprogramacionFlota(v.getIdviaje());
                            programacionFlotaPojo.setConductor(v.getConductor().getNombre());

                            programacionFlotaPojo.setDiaNombre(DateUtil.nameOfDay(v.getFechahorafinreserva()));

                            programacionFlotaPojo.setFecha(v.getFechahorainicioreserva());
                            programacionFlotaPojo.setHorafin("");
                            programacionFlotaPojo.setHorainicio("");
                            // buscar la solicitud con ese viaje para encontrar la mision
                            programacionFlotaPojo.setMision("");
                            programacionFlotaPojo.setUnidad("");
                            programacionFlotaPojo.setVehiculo(v.getVehiculo().getMarca() + " " + v.getVehiculo().getModelo() + " " + v.getVehiculo().getPlaca());
                            programacionFlotaPojoList.add(programacionFlotaPojo);
                        }
                    }
                    break;

.xhtml

 <a:paginatorReport 
                    rowPage="#{viajeReporteController.rowPage}"
                    first="#{viajeReporteController.first()}"
                    back="#{viajeReporteController.back()}"
                    next="#{viajeReporteController.next()}"
                    last="#{viajeReporteController.last()}"
                    page="#{viajeReporteController.page}"
                    pages="#{viajeReporteController.pages}"
                    skip="ajax:viajeReporteController.skip(viajeReporteController.page)" 
                    printAll="#{viajeReporteController.printAll()}"
                    />
                <b:dataTable value="#{viajeReporteController.programacionFlotaDataModel}"
                             var="item"
                             id="dataTable2"
                             paginated="false"
                             onpage="console.log('page');">

                    <b:dataTableColumn value="#{item.idprogramacionFlota}" label="#{msg['field.idprogramacionFlota']}"
                                       />

                    <b:dataTableColumn value="#{item.diaNombre}" label="#{msg['field.diaNombre']}" />


                    <b:dataTableColumn label="#{msg['field.fecha']}"   >

                        <p:calendar  disabled="true"  size="8"   
                                     pattern="dd/MM/yyyy" value="#{item.fecha}"  />

                    </b:dataTableColumn> 




                    <b:dataTableColumn label="#{msg['field.unidad']}" >

                        <p:outputLabel value="#{item.unidad}"/>

                    </b:dataTableColumn>
                    <b:dataTableColumn label="#{msg['field.mision']}" >

                        <p:outputLabel value="#{item.mision}"/>

                    </b:dataTableColumn>

                    <b:dataTableColumn label="#{msg['field.horainicio']}">
                        <p:outputLabel value="#{item.horainicio}"  />

                    </b:dataTableColumn> 
                    <b:dataTableColumn label="#{msg['field.horafin']}">
                        <p:outputLabel value="#{item.horafin}"  />

                    </b:dataTableColumn> 

                    <b:dataTableColumn  label="#{msg['field.conductor']}"  >
                        <p:outputLabel value="#{item.conductor}"/>

                    </b:dataTableColumn>
                    <b:dataTableColumn  label="#{msg['field.vehiculo']}"  
                                        >

                        <p:outputLabel value="#{item.vehiculo}"/>

                    </b:dataTableColumn>



                </b:dataTable>

Generaría

Código .xhtml

   <div class="form-group row">
           <p:outputLabel class="col-xs-2 col-form-label" value="#{msg['field.anio']}"/>
           <div class="col-xs-4">
               <p:inputText  id="anio" class="fullWidth" value="#{reservadoController.reservado.anio}"
                         placeholder="#{msg['field.anio']}"  maxlength="5" 
                         required="true" requiredMessage="#{msg['field.anio']} #{app['info.required']}"/>
           </div>
           <p:outputLabel class="col-xs-2 col-form-label" value="#{msg['field.mes']}"/>
    <div class="col-xs-4">
          <p:selectOneMenu id="mes" value="#{reservadoController.reservado.mes}"
                                     required="true"          >
 <p:ajax process="mes,dia" event="change"
                                                    update=":form:dataTable :form:msgs"
                                                    listener="#{reservadoController.changeMes()}"/>
 <f:selectItem itemLabel="#{app['selectonemenu.select']}" itemValue="#{null}"/>
                                            <f:selectItem itemLabel="#{app['mes.ene']}" itemValue="enero" />
                                            <f:selectItem itemLabel="#{app['mes.feb']}" itemValue="febrero" />
                                            <f:selectItem itemLabel="#{app['mes.mar']}" itemValue="marzo" />
                                            <f:selectItem itemLabel="#{app['mes.may']}" itemValue="mayo" />
                                            <f:selectItem itemLabel="#{app['mes.jun']}" itemValue="junio" />
                                            <f:selectItem itemLabel="#{app['mes.jul']}" itemValue="julio" />
                                            <f:selectItem itemLabel="#{app['mes.ago']}" itemValue="agosto" />
                                            <f:selectItem itemLabel="#{app['mes.sep']}" itemValue="septiembre" />
                                            <f:selectItem itemLabel="#{app['mes.oct']}" itemValue="octubre" />
                                            <f:selectItem itemLabel="#{app['mes.nov']}" itemValue="noviembre" />
                                            <f:selectItem itemLabel="#{app['mes.dic']}" itemValue="diciembre" />
                                        </p:selectOneMenu>
                                    </div>
                                </div>


                            </div>
                        </div>

CONTROLLER

  • mesToMonth() devuelve un objeto Month en base al nombre del mes.

  • luego generamos los dias en un for hasta el limite

  • el método firstLetterOfDay devuelve la letra del día.

public String changeMes() {
try {

LocalDate date;

Month month = JsfUtil.mesToMonth(reservado.getMes());

for (int i = 1; i <= month.maxLength(); i++) {
date = LocalDate.of(reservado.getAnio(), month, i);
String letra = JsfUtil.firstLetterOfDay(date);
JsfUtil.warningMessage(date + "fue "+letra);

}
} catch (Exception e) {
JsfUtil.errorMessage("changeMes() " + e.getLocalizedMessage());
}
return "";
}

Usando FechaDiaUtils

Controller

Implementar la clase FechaDiaUtils del api jsfUtil, ,la estructura de esta clase es

En el controller solo hay que importar

import com.avbravo.avbravoutils.dates.FechaDiaUtils;

El método JsfUtil.nameOfDayOfDateOfMonth(reservado.getAnio(), reservado.getMes());

devuelve un <FechaDiaUtils>, que contendrá cada día del mes, el nombre y la sigla del día de cada mes.

public String changeMes() { try { cargarDias(); List<FechaDiaUtils> fechaDiaUtilsList = JsfUtil.nameOfDayOfDateOfMonth(reservado.getAnio(), reservado.getMes()); for (FechaDiaUtils fdu : fechaDiaUtilsList) { JsfUtil.warningMessage(fdu.getDate() + "fue " + fdu.getLetter() + " name " + fdu.getName()); } } catch (Exception e) { JsfUtil.errorMessage("changeMes() " + e.getLocalizedMessage()); } return ""; }

Last updated