Calcular nº da semana ??

mad marshall

Power Member
Boas, gostaria que me ajudassem no seguinte.

gostaria de saber como posso calcular a semana, tipo :
hoje é dia 28 de Ago de 2007, que corresponde à semana 35, e eu queria mostrar o nº da semana numa label ou textbox, sem ser com o Monthcalendar.

Obrigado

Cumps
 
e tens que pedir o resultado inteiro, não o arredondado senão caso não tenha passado 1 semana completa obterás um valor decimal, e isso não serve.

EX: nsemana = int(dias/7)
Abraço
 
Isso não é assim tão linear.

E quando o 1 de Janeiro é a uma quinta ou uma sexta? O dia 6 já é na semana 2 e no entanto 6/7 < 1.

Há mais coisas a considerar no que respeita a saber o número da semana, sinceramente não sei como se faz, mas tenho em atenção a estes pormenores.

HecKel
 
se definires a variável com data, acho que tens por lá um método próprio que retorna o número da semana.

label1.text=var_data.WeekOfYear

pesquisa bem os métodos que cada tipo de variável tem, o Google tb é teu amigo.

edit: já não pego no .net à mt tempo, mas acho que era assim.
 
Tens razão Heckel mas isso já requer um código mais complexo e acho que ele não tenciona fazer algo assim. Penso eu.

Eu encontro várias coisas mas para dia do ano, dia da semana, mes, etc. nada para número da semana.. De qualquer das maneiras deixo aqui o link, não vas tu procurar melhor no site e encontrar. eu a esta hora já nao leio nada vou xonar:P
http://www.macoratti.net/vbn5_udh.htm
Abraço
 
Última edição:
Boas,

não me parece que seja assim tão complicado. Penso que a melhor maneira será partindo do dia de hoje:

Qua 29 Agosto 2007

na à iteração acertas os dias ao domingo tipo se é estamos numa quarta subtrais 3 dias ficas com 26 Agosto 2007. Nas iterações seguinto vai subtraindo sempre 7 até que seja menor que 1 ai mudaste de semana ou de mes (nesta altura tens de fazer o teste necessário).
Quando o numero de dia e numero de meses for menos que 1 entao chegaste ao inicio do ano e ai terás o numero de semanas.

Em VB n sei como se fará isso....se optares por C\C++ posso dar uma luzitas ;).
 
Eish, não há nada matematicamente mais simples? Isso é uma beca recursivo demais...

Já agora, salvo erro, a primeira semana do ano começa na semana do dia 1 de Janeiro, se este for a uma quinta (por exemplo), os dias 27, 28, 29, 31 de Dezembro também são na semana 1....

Isto não me parece um problema complicado, mas também não é assim tão trivial, existe muita coisa a ter em conta.

HecKel
 
Provavelmente poderá haver uma solução mais optimizada, mas penso que neste caso o tempo que se irá ganhar será minimo e imperceptivel, até porque na pior das hipoteses terás 53 iterações.

Mas são opções de quem faz o código consoante o tempo disponivel que tenham para tal tarefa, eu apenas sugeri como fazer sem pensar muito no assunto...admito a minha preguiça mas na minha opinião o problema não exige mais do que isso... :lol:
 
Pessoal

Existe uma norma ISO para efectuar esse calculo. nos links que deixei está a explicação da norma e o algoritmo a seguir para efectuar esse calculo.

Fiquem bem
 
Back
Topo