significado nueva novilunio menguante luna cuarto creciente astrologico java

java - novilunio - luna nueva visible



¿Cómo obtener el nombre del primer día de un mes? (8)

java.time

Desde Java 8 también podemos usar la clase YearMonth que nos permite crear objetos LocalDate con días específicos (primero, último). Luego, podemos simplemente convertir estas fechas a DayOfWeek Enum ( Tutorial ) y leer su propiedad de name .

YearMonth ym = YearMonth.of(2012, 1); String firstDay = ym.atDay(1).getDayOfWeek().name(); String lastDay = ym.atEndOfMonth().getDayOfWeek().name(); System.out.println(firstDay); System.out.println(lastDay);

resultado:

SUNDAY TUESDAY

¿Cómo haría para obtener el primer día del mes? Así que para enero, de este año, volvería el domingo. Y luego para febrero volvería el miércoles.


java.time, codificado suave

La Answer de Pshemo fue buena e inteligente, pero está codificada al inglés. Vamos a echarle un vistazo para permitir la localización.

ZoneId zoneId = ZoneId.of( "America/Montreal" ); // Time zone is crucial to determining a date. YearMonth yearMonth = YearMonth.now( zoneId ); LocalDate firstOfMonth = yearMonth.atDay( 1 );

Formateador

Generar una representación textual de ese LocalDate . Especificamos la CANADA_FRENCH Locale deseada, en este caso CANADA_FRENCH . Si se omite, la configuración regional predeterminada actual de su JVM se aplica implícitamente; Mejor especificar locale explícito.

DateTimeFormatter formatter = DateTimeFormatter.ofPattern( "EEEE" ).withZone( zoneId ).withLocale( Locale.CANADA_FRENCH ); // Exactly four ''E'' letters means full form. http://docs.oracle.com/javase/8/docs/api/java/time/format/TextStyle.html#FULL String output = formatter.format( firstOfMonth );

Volcar a la consola.

System.out.println( "output: " + output );

Cuando se ejecuta

samedi

DayOfWeek Enum

Otra ruta es utilizar la enumeración DayOfWeek . Esta enumeración incluye un método getDisplayName donde se especifica el estilo de texto (nombre completo versus abreviatura) y una Locale .

DayOfWeek dayOfWeek = firstOfMonth.getDayOfWeek() ; String output = dayOfWeek.getDisplayName( TextStyle.FULL_STANDALONE , Locale.CANADA_FRENCH ) ;


TemporalAdjuster

En java 8 puede usar la nueva LocalDate y LocalTime API.

Para lograr el codiciado resultado, intente lo siguiente. Imprime el nombre del día dado.

import java.time.*; import java.time.temporal.*; public class Main { public static void main(String[] args) { LocalDate l = LocalDate.now().with(TemporalAdjusters.firstDayOfMonth()); System.out.println(l.getDayOfWeek()); } }

Explicación:

  • now te da la fecha actual.
  • Al llamar with usted puede pasar un TemporalAdjuster que es una herramienta clave para modificar objetos temporales.
  • getDayOfWeek Obtiene el campo del día de la semana, que es una enumeración DayOfWeek . Esto incluye nombres textuales de los valores.

TemporalAdjuster tiene una clase hermana, llamada TemporalAdjusters que contiene métodos estáticos con respecto a los ajustes, como el que está buscando, el firstDayOfMonth día de firstDayOfMonth


Cree el objeto java.util.Date o java.util.Calendar , establezca el valor de la fecha y use el método de clase java.text.SimpleDateFormat para formatearlo.

Calendar cal=Calendar.getInstance(); cal.set(Calendar.DATE,1); cal.set(Calendar.MONTH,0); cal.set(Calendar.YEAR,2012); SimpleDateFormat sdf=new SimpleDateFormat("EEEE"); System.out.println(sdf.format(cal.getTime()));


En el Java 8 puedes usar los Ajustadores Temporales:

Esto es un ejemplo:

import java.time.DayOfWeek; import java.time.LocalDate; import java.time.temporal.TemporalAdjusters; /** * Dates in Java8 * */ public class App { public static void main(String[] args) { LocalDate localDate = LocalDate.now(); System.out.println("Day of Month: " + localDate.getDayOfMonth()); System.out.println("Month: " + localDate.getMonth()); System.out.println("Year: " + localDate.getYear()); System.out.printf("first day of Month: %s%n", localDate.with(TemporalAdjusters.firstDayOfMonth())); System.out.printf("first Monday of Month: %s%n", localDate .with(TemporalAdjusters.firstInMonth(DayOfWeek.MONDAY))); System.out.printf("last day of Month: %s%n", localDate.with(TemporalAdjusters.lastDayOfMonth())); System.out.printf("first day of next Month: %s%n", localDate.with(TemporalAdjusters.firstDayOfNextMonth())); System.out.printf("first day of next Year: %s%n", localDate.with(TemporalAdjusters.firstDayOfNextYear())); System.out.printf("first day of Year: %s%n", localDate.with(TemporalAdjusters.firstDayOfYear())); LocalDate tomorrow = localDate.plusDays(1); System.out.println("Day of Month: " + tomorrow.getDayOfMonth()); System.out.println("Month: " + tomorrow.getMonth()); System.out.println("Year: " + tomorrow.getYear()); } }

Los resultados serían:

Day of Month: 16 Month: MAY Year: 2014 first day of Month: 2014-05-01 first Monday of Month: 2014-05-05 last day of Month: 2014-05-31 first day of next Month: 2014-06-01 first day of next Year: 2015-01-01 first day of Year: 2014-01-01 Last in Month Tuesday: 2014-05-27 Day of Month: 17 Month: MAY Year: 2014


Puede crear un Calendar con la fecha que desee y luego set(Calendar.DAY_OF_MONTH, 1) para obtener el primer día de un mes.

Calendar cal = Calendar.getInstance(); cal.set(Calendar.DATE, 25); cal.set(Calendar.MONTH, Calendar.JANUARY); cal.set(Calendar.YEAR, 2012); cal.set(Calendar.DAY_OF_MONTH, 1); Date firstDayOfMonth = cal.getTime(); DateFormat sdf = new SimpleDateFormat("EEEEEEEE"); System.out.println("First Day of Month: " + sdf.format(firstDayOfMonth));


Para obtener la primera fecha del mes actual, use java.util.Calendar . Primero obtenga una instancia del mismo y configure el campo Calendar.DAY_OF_MONTH en la primera fecha del mes. Como el primer día de cualquier mes es 1, en lugar de cal.getActualMinimum(Calendar.DAY_OF_MONTH) , se puede usar 1 aquí.

private Date getFirstDateOfCurrentMonth() { Calendar cal = Calendar.getInstance(); cal.set(Calendar.DAY_OF_MONTH, cal.getActualMinimum(Calendar.DAY_OF_MONTH)); return cal.getTime(); }


public int getFirstDay(){ Calendar c=new GregorianCalendar(); c.set(Calendar.DAY_OF_MONTH, 1); return c.get(Calendar.DAY_OF_WEEK); }

Desde allí puede ver si el int es igual a Calendar.SUNDAY, Calendar.MONDAY, etc.