Saltar al contenido

Obtener el último día de un mes en powershell

Tenemos el arreglo a este contratiempo, al menos eso esperamos. Si presentas preguntas deja tu comentario y sin tardar

Solución:

Una solución mucho más simple es llamar a la función DaysInMonth

[DateTime]::DaysInMonth(2018, 11)

Para el mes actual, se vería así:

$today = get-date
$lastDay = [DateTime]::DaysInMonth($today.Year, $today.Month)
$firstDate = [DateTime]::new($today.Year, $today.Month, 1)
$lastDate  = [DateTime]::new($today.Year, $today.Month, $lastDay)

$firstDate
$lastDate

Esto también evita cualquier cambio de horario de verano que obstaculice y otras cosas extrañas que pueden suceder con las zonas horarias, etc.

O si todo lo que necesita son cadenas puras:

(get-date -Format "yyyy/MM") + "/1"
(get-date -Format "yyyy/MM") + "/" + [DateTime]::DaysInMonth((get-date).Year, (get-date).Month)

Una manera fácil es tomar el último día del año anterior y agregarle 1…12 meses:

1..12 | %  (New-Object DateTime(2017,12,31)).AddMonths($_) 

La salida estará en el formato de fecha/hora del usuario, en mi caso holandés:

woensdag 31 januari 2018 00:00:00
woensdag 28 februari 2018 00:00:00
zaterdag 31 maart 2018 00:00:00
maandag 30 april 2018 00:00:00
donderdag 31 mei 2018 00:00:00
zaterdag 30 juni 2018 00:00:00
dinsdag 31 juli 2018 00:00:00
vrijdag 31 augustus 2018 00:00:00
zondag 30 september 2018 00:00:00
woensdag 31 oktober 2018 00:00:00
vrijdag 30 november 2018 00:00:00
maandag 31 december 2018 00:00:00

Si es necesario, puede formatearlo como lo necesite, por ejemplo

1..12 | %  (New-Object DateTime(2017,12,31)).AddMonths($_).ToString("yyyyMMdd") 

20180131
20180228
20180331
20180430
20180531
20180630
20180731
20180831
20180930
20181031
20181130
20181231

Esto parece bastante simple

$firstDate = [DateTime]::new($reportDate.Year, $reportDate.Month, 1)
$lastDate=$firstDate.AddMonths(1).AddDays(-1)

Sección de Reseñas y Valoraciones

Recuerda algo, que tienes la capacidad de valorar esta división si te ayudó.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)


Tags : /

Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *