Como pegar o último dia da data atual e semana do mês

1. Como pegar o último dia da data atual e semana do mês

LAERDES SANTOS PATROCINIO
Laerdes

(usa Ubuntu)

Enviado em 01/06/2022 - 14:33h

Tipo hoje são 01/06/2022
Me traria o retorno de 30 dias no mês
1 Semana do mes

Se fosse 18/06/2022
Me traria o retorno de 30 dias no mês
3 Semana do mes


  


2. Re: Como pegar o último dia da data atual e semana do mês

Paulo
paulo1205

(usa Ubuntu)

Enviado em 01/06/2022 - 15:06h

Não entendi sua dúvida.

A primeira semana de um mês nunca vai passar do dia 7. Mas saber quando uma semana termina depende do contexto. Por exemplo, algumas aplicações consideram que a "primeira semana" só começa a contar a partir da primeira quarta-feira contida naquele mês ou ano; outras podem contar que uma semana conta como sete dias corridos desde o início do mês ou ano, independentemente de se esse dia foi domingo, segunda-feira, ..., ou sábado; em outra aplicação, se o dia 1º for um sábado, o dia 2 já contaria como segunda semana, considerando que domingo é o primeiro dia da semana.

Quanto ao último dia do mês, é relativamente fácil de saber se você souber o mês (e, no caso de fevereiro, também o ano).

Do que, especificamente, você precisa?


... Então Jesus afirmou de novo: “(...) eu vim para que tenham vida, e a tenham plenamente.” (João 10:7-10)


3. Re: Como pegar o último dia da data atual e semana do mês

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 01/06/2022 - 17:40h

Boa tarde Laerdes.
Considerando:
     Junho 2022
do se te qu qu se sá
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30

Para "saber" a semana de determinado dia:
cal|awk '/18/{printf "Semana: %s\n",NR-2}'
Semana: 3

Para saber o nº de dias do mês, de Fevereiro.....
date -d "$ano-03-01 -1 day" +%d

----------------------------------------------------------------------------------------------------------------
#!/usr/bin/env bash

nmes=(Janeiro Fevereiro Março Abril Maio Junho Julho Agosto Setembro Outubro Novembro Dezembro)
mdias=(31 "00" 31 30 31 30 31 31 30 31 30 31)

read -p " Mês: " mes;
read -p " Ano: " -n4 ano;
mum=$((mes-1))
(($mum-1!=1)) && dias=${mdias[$mum]} || dias=$(date -d"$ano-03-01 -1day" +%d);
printf "\n\n ${nmes[$mum]} de $ano: => $dias dias\n"

É isso...



______________________________________________________________________
Importante:
lynx --dump https://www.vivaolinux.com.br/termos-de-uso/ | sed -nr '/^[ ]+Se/,/dou.$/p'
______________________________________________________________________
Nota de esclarecimento:
O comando: ACIMA, faz parte da minha assinatura.
Att.: Marcelo Oliver
______________________________________________________________________



4. Re: Como pegar o último dia da data atual e semana do mês

abel
abandonado

(usa Outra)

Enviado em 01/06/2022 - 17:53h

Para conseguir o número de dias de um mês, considerando fevereiros de anos bissextos, eu tenho uma função de shell que uso em um script de contar períodos entre datas.

O código abaixo foi modificado pra aceitar um input formatado como o OP descreveu (DD/MM/YYY).

#número de dias de cada mês do ano
YEAR_MONTH_DAYS=(31 28 31 30 31 30 31 31 30 31 30 31)

#imprime o número máximo de dias de um mês específico
#uso: month_maxday [DD/MM/YYYY]
month_maxday()
{
set -- ${*//[\/.-]/ }
local month="$2" year="$3"
if (( month == 2 && !(year % 4) && ( year % 100 || !(year % 400) ) ))
then echo 29
else echo ${YEAR_MONTH_DAYS[month-1]}
fi

}


Depois de declarar a variável e a função na sua shell , poderá usar na shell:

$ month_maxday 01/06/2022
30







Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts