2009-10-06 5 views
1

Я хочу посмотреть, есть ли в нем какой-нибудь день. Я проверяю это правильно?Получение дня с даты Объект

Calendar cal = Calendar.getInstance(); 
cal.setTime(someDate); // someDate is a Date 
int day = cal.get(Calendar.DAY_OF_MONTH); 
if(day == 0){ 
    // code // 
} 

ответ

4

Я не уверен, что вы подразумеваете под «имеет любой день в нем» - все даты будут иметь день в них ... :-)

Кроме этого, вы, вероятно, хочу:

Calendar cal = Calendar.getInstance(); 
cal.setTime(someDate); // someDate is a Date 
int day = cal.get(Calendar.DAY_OF_WEEK); 
if(day == Calendar.SUNDAY){ 
    // code // 
} 

Большое изменение в том, что вы хотите получить поле DAY_OF_WEEK; то, что делает ваш пример, получает день в течение месяца (например, 15 сентября вернет «15»). Во-вторых, сравнение с Calendar.SUNDAY (или эквивалентом) является более четким и менее подверженным ошибкам, которое непосредственно сравнивается с, например, 0, даже если код эквивалентен.

0

Каждый день объект будет иметь день. День месяца никогда не будет 0, но он будет в диапазоне 1-31. Это означает, что ваш чек всегда будет терпеть неудачу.

0

Если я правильно понял, вы хотите Calendar.DAY_OF_WEEK.

0

Правильный номер answer by Andrzej Doyle.


Только для щеколду этого, здесь тот же самый вид кода, но с использованием библиотеки Joda-Time 2.3 и Java 7.

В отличие от java.util.Calendar, Joda-Time благоразумно использует 1-на основе подсчета. Таким образом, дни недели пронумерованы от 1 до 7. Кроме того, Joda-Time использует стандартный подход (ISO 8601), где понедельник - первый день недели (1).

// © 2013 Basil Bourque. This source code may be used freely forever by anyone taking full responsibility for doing so. 
// import org.joda.time.*; 
// import org.joda.time.format.*; 

// Specify time zone rather than rely on default. 
// Time Zone list… http://joda-time.sourceforge.net/timezones.html (not quite up-to-date, read page for details) 
DateTimeZone timeZone = DateTimeZone.forID("Europe/Paris"); 

DateTime now = new DateTime(timeZone); 
if(now.dayOfWeek().get() == DateTimeConstants.MONDAY) { 
    System.out.println("Today is a Monday."); 
} else { 
    System.out.println("Nope, today is some other day of week."); 
} 
Смежные вопросы