Problema em resolver um metodo

4 respostas
thiago_farias

nao consigo resolver este problema …

Sabendo que o dia 01/jan/2011 foi um sábado, implementar um procedimento, conforme assinatura abaixo,
que dado um dia de um mês deste mesmo ano retorne o dia da semana (“dom”, “seg”, “ter”, “qua”, “qui”, “sex”, ou “sab”)
correspondente a este dia. Por exemplo, o dia 03/04/2011 foi domingo, devendo, portanto retornar “dom”.

public static String diaSemana(int dia, int mes)

alguem sabe como começar???
obrigado…

4 Respostas

ViniGodoy

Conte quando dias existem entre esse dia e 1/1/2011.
Depois tire o resto por 7.
E use o resultado para ver qual é o dia da semana resultante.

A lógica nem sequer precisa se aplicar ao mesmo ano, mas para fazer entre anos diferentes, pode ser difícil determinar quantos dias existem por causa dos anos bissextos.

Andre_Rosa

Use o método SimpleDateFormat():
http://download.oracle.com/javase/1.4.2/docs/api/java/text/SimpleDateFormat.html

Por exemplo:

import java.text.*;
import java.util.*;
import java.util.logging.Level;
import java.util.logging.Logger;



public class Arquivo {
    public static void main(String[] args) {
        Locale.setDefault (new Locale ("pt", "BR"));  
        DateFormat day = new SimpleDateFormat ("dd/MM/yyyy");  
        Date data = null;  
        try {
            data = day.parse ("11/09/2011");
        } catch (ParseException ex) {
            Logger.getLogger(Arquivo.class.getName()).log(Level.SEVERE, null, ex);
        }
        DateFormat exDay = new SimpleDateFormat ("EEEE");  
        System.out.println (exDay.format (data));  
            
    }
}
ViniGodoy

Vamos a um exemplo.

Considere
0 = SAB
1 = DOM
2 = SEG
3 = TER
4 = QUA
5 = QUI
6 = SEX

E que o dia seja 8/1/2011.
Resto de (8-1) por 7 = 0. Portanto, o dia em questão é sábado.
Agora, digamos que o dia seja o dia 15/1/2011
Resto de (15-1) por 7 = resto(14) por 7 = 0, portanto o dia é sábado (o que é obvio, pois só estou somando 7 dias).

Agora, digamos que o dia seja 17/2/2011.
Resto de (31+17-1) por 7 = resto de 47 por 7 = 5. Portanto o dia em questão é quinta-feira.
A soma de 31 antes do 17 corresponde a todos os dias do mês de janeiro.

ViniGodoy

É a forma mais correta e profissional, mas dificilmente será aceita pelo professor. :slight_smile:

Criado 11 de setembro de 2011
Ultima resposta 11 de set. de 2011
Respostas 4
Participantes 3