Fórum Como definir o número do horas por dia usando Calendar #525717

14/07/2015

0

Pessoal, como faço para definir o número de horas de um dia. Usando Calendar, está definido que um dia tem 24 horas (padrão) quero mudar para que um dia tenha 9 horas.

Alguém pode me ajudar?

Obrigado.

Marcos
Marcos

Marcos

Responder

Posts

14/07/2015

Janaina Mendes

Acompanhando, Marcos, já leu sobre o assunto?

[url]http://www.botecodigital.info/java/manipulando-datas-em-java/[/url]
Responder

Gostei + 0

14/07/2015

Marcos

Oi Janaina, sim já lí. Mas estou um pouco confuso como devo setar as horas do dia para que não seja mais 24horas e sim 9horas.

Será que devo fazer isso?

Calendar c = Calendar.getInstance();
c.set(Calendar.HOUR_OF_DAY, 9);

Mas acho que não é isso.
Responder

Gostei + 0

14/07/2015

Marcos

Estou fazendo um sistema de alocaçao de horas para pessoas, só que a empresa quer que os dias úteis tenham somente 9 horas para que na soma das horas alocadas quando ultrapassar as nove horas alocadas mude o dia.

Exemplo: Data Inicial Horas
01-07-2015 54

O Sistema deve acrescentar mais seis dias na data. Humm.. Pensando bem... Talvez se eu converter as horas em dias de 9horas (54/9) e adicionar seria uma alternativa
Responder

Gostei + 0

14/07/2015

Ronaldo Lanhellas

De fato a melhor solução é criar uma camada de conversão de 24h para 9h, exatamente do jeito que você mencionou. Vejamos:

- Em 1 dia normal temos 24horas.
- No seu dia em especial temos 9h apenas.

Então a pergunta: Quantos dias tem em 24h ? Quando cada dia corresponde a 9h ?

Regra de três simples -->

1dia ---- 9h
xdias --- 24h

x = 24/9 -->> 2,66. Como o dia deve ser um valor inteiro, temos que em 24h temos 2 dias e mais algumas horas (mas estamos desprezando essas horas).

Vamos codificar isso:

public int quantidadeDias(int horas){
    return Math.ceil(horas/9);
}


Com o método quantidadeDias() você sabe quantos dias tem em X horas, e depois é só adicionar a data atual através do Calendar.
Responder

Gostei + 0

14/07/2015

Ronaldo Lanhellas

De fato a melhor solução é criar uma camada de conversão de 24h para 9h, exatamente do jeito que você mencionou. Vejamos:

- Em 1 dia normal temos 24horas.
- No seu dia em especial temos 9h apenas.

Então a pergunta: Quantos dias tem em 24h ? Quando cada dia corresponde a 9h ?

Regra de três simples -->

1dia ---- 9h
xdias --- 24h

x = 24/9 -->> 2,66. Como o dia deve ser um valor inteiro, temos que em 24h temos 2 dias e mais algumas horas (mas estamos desprezando essas horas).

Vamos codificar isso:

public int quantidadeDias(int horas){
    return Math.ceil(horas/9);
}


Com o método quantidadeDias() você sabe quantos dias tem em X horas, e depois é só adicionar a data atual através do Calendar.
Responder

Gostei + 0

14/07/2015

Ronaldo Lanhellas

De fato a melhor solução é criar uma camada de conversão de 24h para 9h, exatamente do jeito que você mencionou. Vejamos:

- Em 1 dia normal temos 24horas.
- No seu dia em especial temos 9h apenas.

Então a pergunta: Quantos dias tem em 24h ? Quando cada dia corresponde a 9h ?

Regra de três simples -->

1dia ---- 9h
xdias --- 24h

x = 24/9 -->> 2,66. Como o dia deve ser um valor inteiro, temos que em 24h temos 2 dias e mais algumas horas (mas estamos desprezando essas horas).

Vamos codificar isso:

public int quantidadeDias(int horas){
    return Math.ceil(horas/9);
}


Com o método quantidadeDias() você sabe quantos dias tem em X horas, e depois é só adicionar a data atual através do Calendar.
Responder

Gostei + 0

14/07/2015

Marcos

Obrigado Ronaldo.

Acabei fazendo assim:

Double hc = HorasDAO.listaHoraCalendarioRegiao("COD_REGIAO = "+usuarioDTO.getRegiao().getCodRegiao()+"");
			
                       if(alocacaoDTO.getHoras()!=null){
				
				ha = Double.parseDouble(alocacaoDTO.getHoras());
				
				d = ha/hc;
				
				dd = Math.ceil(d);
			}



Apenas um comentário: Por que quando você responde no Forum a resposta vem repetida várias vezes?
Responder

Gostei + 0

14/07/2015

Ronaldo Lanhellas

Disponha. Em relação a sua pergunta, deve ser porque o meu browser está com algum bug e envia várias requisições para o mesmo click.
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar