Найти день свидания на Яве - PullRequest
7 голосов
/ 27 апреля 2011

Я хочу узнать день даты в Java для такой даты, как 27-04-2011.

Я пытался использовать это, но это не работает:

Calendar cal = Calendar.getInstance();
int val = cal.get(Calendar.DAY_OF_WEEK);

Это дает целочисленное значение, а не вывод строки, который я хочу. Я не получаю правильное значение, которое я хочу. Например, он дает мне значение 4 для даты 28-02-2011, где должно быть 2, потому что воскресенье - первый день недели.

Ответы [ 7 ]

9 голосов
/ 27 апреля 2011

Да, вы спрашивали об этом для дня недели - и 28 февраля был понедельник, день 2 . Обратите внимание, что в приведенном вами коде вы на самом деле не устанавливаете дату где-либо - она ​​просто использует текущую дату, то есть среду, поэтому вы получаете 4. Если бы вы могли покажите, как вы пытаетесь установить календарь на другую дату (например, 28 февраля), и мы можем понять, почему это не работает для вас.

Если вы хотите, чтобы он был отформатирован как текст, вы можете использовать SimpleDateFormat и спецификатор "E". Например (не проверено):

SimpleDateFormat formatter = new SimpleDateFormat("EEE");
String text = formatter.format(cal.getTime());

Лично я бы вообще не использовал Calendar - используйте Joda Time , который намного лучше API даты и времени.

3 голосов
/ 27 апреля 2011
  String dayNames[] = new DateFormatSymbols().getWeekdays();
  Calendar date1 = Calendar.getInstance();
  System.out.println("Today is a " 
    + dayNames[date1.get(Calendar.DAY_OF_WEEK)]);
3 голосов
/ 27 апреля 2011
Calendar cal=Calendar.getInstance();
System.out.println(new SimpleDateFormat("EEE").format(cal.getTime()));

выход

Wed

См. Также

1 голос
/ 27 апреля 2011
Calendar cal=Calendar.getInstance();
    cal.set(2011, 2, 28);
     int val = cal.get(Calendar.DAY_OF_WEEK);
     System.out.println(val);
1 голос
/ 27 апреля 2011

Попробуйте следующее:

    Calendar cal=Calendar.getInstance();
    int val = cal.get(Calendar.DAY_OF_WEEK);
    System.out.println(new DateFormatSymbols().getWeekdays()[val]);

или

    Calendar cal=Calendar.getInstance();
    String dayName = new DateFormatSymbols().getWeekdays()[cal
            .get(Calendar.DAY_OF_WEEK)];
    System.out.println(dayName);
1 голос
/ 27 апреля 2011

См. JavaDoc поля DAY_OF_WEEK.Он указывает на 7 констант SUNDAY..SATURDAY, которые показывают, как декодировать возвращаемое int значение cal.get (Calendary.DAY_OF_WEEK).Вы уверены, что

Calendar cal = Calendar.getInstance();
cal.set(2011, 02, 28);
cal.get(Calendar.DAY_OF_WEEK);

возвращает неправильное значение для вас?

0 голосов
/ 27 апреля 2011

Посмотрите на SimpleDateFormat и, вероятно, Язык .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...