Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Calendar. Вычислить кол-во дней в неделе месяца, Необходимо получить кол-во дней в недела 
V
    Опции темы
smily
Дата 18.11.2011, 07:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 26.11.2006

Репутация: нет
Всего: нет



Доброго дня.
САБЖ, поясню, входной информацией будут: год, месяц, номер недели в месяце(или может в году).
Необходимо получить кол-во и значения дней в неделе.

Т.е к примеру: 2011 год, ноябрь,4-я неделя.  Результат: 3 дня. 28.11.11, 29.11.11, 30.11.11

Задача не тривиальная, или я ошибаюсь?

Заранее thanks

ЗЫ. копаю Calendar, но чот пока не соображу.



Это сообщение отредактировал(а) smily - 18.11.2011, 07:26
PM MAIL   Вверх
danilych
Дата 18.11.2011, 08:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 72
Регистрация: 2.2.2011

Репутация: 3
Всего: 3



номер недели в месяце

public static final int DAY_OF_WEEK_IN_MONTH



Это сообщение отредактировал(а) danilych - 18.11.2011, 08:24
PM MAIL   Вверх
smily
Дата 18.11.2011, 08:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 26.11.2006

Репутация: нет
Всего: нет



номер недели мне известен.
PM MAIL   Вверх
firedrago
Дата 18.11.2011, 08:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 170
Регистрация: 22.9.2005

Репутация: 2
Всего: 3



День недели - 
Код

  int weekday = calendar.get(Calendar.DAY_OF_WEEK);

1 week на сколько мне известно 7 дней smile 
С календарной неделей так же
Код

int week = 10;
int year = 2011;

Calendar calendar = Calendar.getInstance();
calendar.clear();
calendar.set(Calendar.WEEK_OF_YEAR, week);
calendar.set(Calendar.YEAR, year);

Date date = calendar.getTime();

Теперь все просто вычисляется....
PM MAIL   Вверх
smily
Дата 18.11.2011, 08:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 26.11.2006

Репутация: нет
Всего: нет



Цитата(firedrago @ 18.11.2011,  08:28)
День недели - 
Код

  int weekday = calendar.get(Calendar.DAY_OF_WEEK);

1 week на сколько мне известно 7 дней smile 
С календарной неделей так же
Код

int week = 10;
int year = 2011;

Calendar calendar = Calendar.getInstance();
calendar.clear();
calendar.set(Calendar.WEEK_OF_YEAR, week);
calendar.set(Calendar.YEAR, year);

Date date = calendar.getTime();

Теперь все просто вычисляется....


ну не мог бы до конца расписать, честно в голову ничего не идёт...

Это сообщение отредактировал(а) smily - 18.11.2011, 09:11
PM MAIL   Вверх
firedrago
Дата 18.11.2011, 16:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 170
Регистрация: 22.9.2005

Репутация: 2
Всего: 3



на быструю ногу  smile 
надеюсь, это то, что надо....
Код

import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.List;

public class Test {
    public static void main(String[] args) {
        int year = 2011;
        int month = Calendar.NOVEMBER;
        int weekNr = 4;
        

        Calendar calendar = Calendar.getInstance();
        calendar.clear();
        calendar.set(Calendar.YEAR, year);
        calendar.set(Calendar.MONTH, month);
        
        calendar.set(Calendar.DAY_OF_MONTH, 1);
        int kwBegin = calendar.get(Calendar.WEEK_OF_YEAR);
        int maxDaysInMonth = calendar.getActualMaximum(Calendar.DAY_OF_MONTH);
        
        calendar.clear();
        calendar.set(Calendar.YEAR, year);
        calendar.set(Calendar.WEEK_OF_YEAR, kwBegin + weekNr);
        
        List<String> dates = new ArrayList<String>();    
        SimpleDateFormat sdf = new SimpleDateFormat("dd.MM.yyyy");
    
        boolean abort = false;
        for(int i = calendar.get(Calendar.DAY_OF_WEEK); i <= (Calendar.SATURDAY + 1) && !abort; i++){
            dates.add(sdf.format(calendar.getTime()));
            calendar.add(Calendar.DAY_OF_MONTH, 1);
            if(calendar.get(Calendar.DAY_OF_MONTH) == maxDaysInMonth){
                dates.add(sdf.format(calendar.getTime()));
                abort = true;
            }
        }
        
    
        ////////////
        for(String s: dates){
            System.out.println(s);
        }
    }
}



хотя думаю, что тут еще далеко не все условия выполняются.... ну я думаю, смысл понятен ?!

Это сообщение отредактировал(а) firedrago - 18.11.2011, 17:00
PM MAIL   Вверх
smily
Дата 19.11.2011, 06:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 26.11.2006

Репутация: нет
Всего: нет



thx  smile . 
хотел тебе плюсануть, прав не хватает пока )
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
javastic
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0676 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.