msoliver
(usa Debian)
Enviado em 30/10/2020 - 17:01h
Mauriciodez escreveu:
pessoas ... tô enrolado para fazer o seguinte
Dia_inicial=01/10/2020
dia final=HOJE
contar as dias entre a data inicial e hoje que não são nem sábado nem domingo ( incluindo data inicial e hoje ) e multiplicar por 300.
até achei como ver o dia da semana, mas fiquei confuso de como fazer o loop.
Boa tarde Mauricio, tudo certo.....
Veja se ajuda:
ncal -hM 10 2020|awk 'NR>1 && NR<=6 {sum+=NF;}END{print "Dias Uteis: "(sum-5)}'
Dias Úteis: 22
Lógica:
ncal -hM 10 2020 # Out 2020
Outubro 2020
se 5 12 19 26
te 6 13 20 27
qu 7 14 21 28
qu 1 8 15 22 29
se 2 9 16 23 30
sá 3 10 17 24 31
do 4 11 18 25
awk, "pega" da linha 2 ate a 6, isso "exclui" 'Outubro 2020' , 'sá' e 'do',
sum+=NF; conta os registros,
(sum-5): subtrai 5, pq contou os campos que tem o dia da semana;
+ uma opção
seq 30|xargs -i date -d"2020-10-{}" +%a' '%x|sed '/sáb/d;/dom/d'|wc -l
22
Muito mais rápido....
#86400 = segundos em um dia:
#echo $((60*60*24))
uts=$(date -d"2020-10-01 00:00:00" +%s); #Nº de segundos na data inicial.
gawk -v t=$uts 'BEGIN {for(i=0;i<=30;i++) printf "%s\n" ,strftime("%a %x", t+86400*i)}'|sed -nr '/(sáb|dom)/!p'|wc -l;
22
______________________________________________________________________
Importante: lynx --dump goo.gl/a9KeFc|sed -nr '/^[ ]+Se/,/dou.$/p'
Att.: Marcelo Oliver
______________________________________________________________________
Nota de esclarecimento:
O comando:
lynx --dump goo.gl/a9KeFc|sed -nr '/^[ ]+Se/,/dou.$/p',
faz parte da minha assinatura.
O qual, "filtra" a página: "https://www.vivaolinux.com.br/termos-de-uso/",
Mostrando o seguinte:
Se você sanou sua dúvida ou resolveu um problema a partir de um
tópico criado, é extremamente recomendável que acesse o tópico e
marque-o como "RESOLVIDO". E mais recomendável ainda que você eleja
como melhor resposta a que mais lhe ajudou.
______________________________________________________________________