Vamos lá ...

Em 07/12/05, Rodrigo Braga <[EMAIL PROTECTED]> escreveu:
Pessoal

Estou em um pequeno projeto (acadêmico) de
desenvolvimento de um sistema para bibliotecas, onde
um módulo será responsável por empréstimo
reserva/empréstimo/devolução das obras.

Estou com algumas dúvidas em relação a datas, vamos a
elas:

# Como configurar o Zope para GMT-3?!

Vc deve configurar isso no SO da máquina que está rodando zope, já que a data/hora do servidor retornada pelo zope é a data/hora configurada nesse SO.
Vc pode exibir data(s) em outros timezones (que tb pode ser a data/hora do servidor - ZopeTime) usando o método toZone(), de DateTime [1]. Daí, vc poderia SIMULAR o zope em GMT-3 usando esse método a cada exibição de data. Mas acho melhor a mudança no servidor.

# Como alterar a data do "sistema" no Zope? (para que
eu possa realizar testes e etc. dos cálculo das datas)

Idem acima, exceto que p/ SIMULAR isso vc teria que ficar calculando as datas e tvz não seja uma boa idéia p/ esse caso, já que vc parece querer ficar mudando em seus testes.

# como calcular dias da semana?!

Vc talvez nem precise! Se vc tiver a data como um objeto DateTime, por exemplo, um chamado objData, basta usar objData.strftime(%B).
Contudo, qdo vc somar um número a ele (por exemplo, se somar 1 ou 2, ele acrescenta  1 ou 2 dias), vc pode obter uma data inválida. O Zope Book[2], no apêndice B [3] (referência da  API), sobre o módulo DateTime [1], tem uma lista dos métodos de DateTime, e isso vai te ajudar um bocado.

Neste último o problema é o seguinte:

Quando o usuário reserva a obra, ele tem até três dias
para retira-la, e ele escolhe esse dia em um combo,
cuja os dias da semana são calculados da seguinte
forma:

dias_semana = ['seg','ter','qua', 'qui', 'sex', 'seg',
'ter']

DiaAtualSistama + 2

e caso seja sáb/dom começa do inicio da lista (seg)

Claro que feriados e etc. seria um problema, mas isto
não será tratado por hora!

e baseado na data de retirada, é somado mais 2 para a
entrega.

O cálculo tá saindo meio "esquesito" não sei se por
causa da data do sistema e em algum lugar eu passo com
uma formatção e no outro exibo outra coisa ... enfim
... alguma idéia?!

Além dos métodos de DateTime, tem o script getNextMonth (em /[site]/portal_skins/plone_scripts).
Tenho um uso dele na linha do que vc quer aqui (melhor jogar num Kate/Kedit,GEdit ou Bloco de Notas p/ ver melhor):

tal:define="fimMes python:context.getNextMonth(context.ZopeTime().month(),context.ZopeTime().year())-1;
            fimMes python:DateTime(fimMes.year(),fimMes.month(),fimMes.day(),23,59,59);
            hoje python:DateTime(context.ZopeTime().year(),context.ZopeTime().month(),context.ZopeTime().day(),23,59,59);
            hojeMaisUmDia python:test(hoje==fimMes,context.getNextMonth(context.ZopeTime().month(),context.ZopeTime().year()),context.ZopeTime()+1);"

Valeu pessoal

Falowz!

[1] http://www.plope.com/Books/2_7Edition/AppendixB.stx#0-3
[2] http://www.plope.com/Books/2_7Edition/
[3] http://www.plope.com/Books/2_7Edition/AppendixB.stx

--
JJ (|´:¬{)»
---------------------------------------------
"Eu sou a ressurreição e a vida. Quem crê em mim, ainda que morra, viverá; e todo o que vive e crê em mim não morrerá, eternamente. Crês isto?"
O Senhor, Jesus Cristo - Jo.11:25-26
---------------------------------------------


Para enviar uma mensagem: zope-pt@yahoogrupos.com.br
Para desistir envie uma mensagem em branco para: [EMAIL PROTECTED]



Yahoo! Grupos, um serviço oferecido por:
PUBLICIDADE


Links do Yahoo! Grupos

Responder a