Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Дни недели без выходных / 13 сообщений из 13, страница 1 из 1
04.08.2013, 13:52:49
    #38354284
Leyla89
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Дни недели без выходных
Построить список, содержащий все дни недели для любого месяца в любом году. Суббот и воскресений не должно быть в этом списке. Написать класс, содержащий методы, необходимые для построения такого списка.
...
Рейтинг: 0 / 0
04.08.2013, 14:30:53
    #38354303
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Дни недели без выходных
Leyla89Построить список, содержащий все дни недели для любого месяца в любом году. Суббот и воскресений не должно быть в этом списке. Написать класс, содержащий методы, необходимые для построения такого списка.
Сделать лабораторную работу. Получить зачет.
...
Рейтинг: 0 / 0
04.08.2013, 15:46:17
    #38354335
Leyla89
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Дни недели без выходных
Как теперь убрать сб и вс?
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
import java.text.DateFormatSymbols;
import java.util.Calendar;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.AbstractTableModel;

public class Task5 extends AbstractTableModel{
	  int column;
	  int row;
	  Integer days[][];
	  Calendar calendar;
	  String[] dayNames;
	  int year;
	  int month;
	  
	  public Task5(int year, int month){
	    set(year, month);
	  }
	  
	  public void set(int year, int month){
	    this.year = year;
	    this.month = month;
	    init();
	    fireTableStructureChanged();
	  }
	  
	  private void init(){
	    calendar = Calendar.getInstance();
	    calendar.setMinimalDaysInFirstWeek(7);
	    calendar.clear();
	    calendar.set(Calendar.YEAR, year);
	    calendar.set(Calendar.MONTH, month);
	    column = calendar.getActualMaximum(Calendar.DAY_OF_WEEK) - calendar.getActualMinimum(Calendar.DAY_OF_WEEK) + 1;
	    row = calendar.getActualMaximum(Calendar.WEEK_OF_MONTH) - calendar.getActualMinimum(Calendar.WEEK_OF_MONTH) + 1;
	    days = new Integer[row][column];
	    dayNames = new String[column];
	    int currDay = calendar.getFirstDayOfWeek();
	    String[] d = new DateFormatSymbols().getShortWeekdays();
	    for(int i = 0; i < dayNames.length; i++){
	      dayNames[i] = d[currDay];
	      currDay++;
	      if(currDay > calendar.getActualMaximum(Calendar.DAY_OF_WEEK))
	        currDay = calendar.getActualMinimum(Calendar.DAY_OF_WEEK);
	    }	    
	    calendar.set(Calendar.WEEK_OF_MONTH, calendar.getActualMinimum(Calendar.WEEK_OF_MONTH));
	    calendar.set(Calendar.DAY_OF_WEEK, calendar.getFirstDayOfWeek());
	    for(int r = 0; r < row; r++){
	      for(int c = 0; c < column; c++){
	        if(calendar.get(Calendar.MONTH) == month){
	          days[r][c] = calendar.get(Calendar.DAY_OF_MONTH);
	        } else days[r][c] = null;        
	        calendar.add(Calendar.DAY_OF_YEAR, 1);
	      }
	    }
	  }
	  
	  public Object getValueAt(int rowIndex, int columnIndex){
	    return days[rowIndex][columnIndex];
	  }
	  
	  public Class getColumnClass(int columnIndex){
	    return Integer.class;
	  }
	  
	  public int getRowCount(){
	    return row;
	  }
	  
	  public int getColumnCount(){
	    return column;
	  }
	  
	  public String getColumnName(int columnIndex){
	    return dayNames[columnIndex];
	  }
	  
	  public static void main(String[] args){
	    Task5 model = new Task5(2013, Calendar.AUGUST);
	    JFrame frame = new JFrame();
	    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	    frame.getContentPane().add(new JScrollPane(new JTable(model)));
	    frame.pack();
	    frame.setLocationRelativeTo(null);
	    frame.setVisible(true);
	  }
}
...
Рейтинг: 0 / 0
04.08.2013, 21:03:33
    #38354512
base2
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Дни недели без выходных
Leyla89Как теперь убрать сб и вс?
Не класть их туда
...
Рейтинг: 0 / 0
05.08.2013, 12:49:52
    #38354968
JulT
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Дни недели без выходных
Попробуй библиотеку JodaTime
Что-то типа:
if(myDate.getDayOfWeek()<=5) {
Add to collection....
}
...
Рейтинг: 0 / 0
05.08.2013, 12:59:36
    #38354988
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Дни недели без выходных
JulTПопробуй библиотеку JodaTime
Что-то типа:
if(myDate.getDayOfWeek()<=5) {
Add to collection....
}
В некоторых странах неделя начинается в воскресенье. Поэтому лучше явно указывать. Если суббота\воскресенье одна логика, если остальные - другая.
...
Рейтинг: 0 / 0
05.08.2013, 13:45:08
    #38355106
Garrick
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Дни недели без выходных
BlazkowiczВ некоторых странах неделя начинается в воскресенье. Поэтому лучше явно указывать. Если суббота\воскресенье одна логика, если остальные - другая.
А в некоторых пятница - выходной :-)
...
Рейтинг: 0 / 0
05.08.2013, 17:53:38
    #38355586
ShSerge
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Дни недели без выходных
GarrickА в некоторых пятница - выходной :-)
В Израеле?
...
Рейтинг: 0 / 0
05.08.2013, 18:41:24
    #38355662
Leonidv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Дни недели без выходных
BlazkowiczJulTПопробуй библиотеку JodaTime
Что-то типа:
if(myDate.getDayOfWeek()<=5) {
Add to collection....
}
В некоторых странах неделя начинается в воскресенье. Поэтому лучше явно указывать. Если суббота\воскресенье одна логика, если остальные - другая.
Если задача промышленная, то еще надо про праздники помнить. Но это, похоже, учебная задача.
...
Рейтинг: 0 / 0
05.08.2013, 19:55:06
    #38355775
ShSerge
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Дни недели без выходных
LeonidvЕсли задача промышленная, то еще надо про праздники помнить. Но это, похоже, учебная задача.
Если задача промышленная, то весьма рекомендуется сделать свой собственный календарь.
...
Рейтинг: 0 / 0
05.08.2013, 21:16:54
    #38355823
Usman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Дни недели без выходных
Leyla89Построить список, содержащий все дни недели для любого месяца в любом году. Суббот и воскресений не должно быть в этом списке
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
public static List<Date> getWeekDays(int year, int month) {
	List<Date> weekDays = new ArrayList<>();
	Calendar calendar = Calendar.getInstance();
	calendar.set(year, month, 1);
	int max = calendar.getActualMaximum(Calendar.DAY_OF_MONTH);
	while (--max >= 0) {
		switch (calendar.get(Calendar.DAY_OF_WEEK)) {
		case Calendar.MONDAY:
		case Calendar.TUESDAY:
		case Calendar.WEDNESDAY:
		case Calendar.THURSDAY:
		case Calendar.FRIDAY:
			weekDays.add(calendar.getTime());
			break;
		}
		calendar.add(Calendar.DAY_OF_MONTH, 1);
	}
	return weekDays;
}
...
getWeekDays(2013, Calendar.AUGUST);
...
Рейтинг: 0 / 0
06.08.2013, 09:11:12
    #38356042
Garrick
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Дни недели без выходных
ShSergeGarrickА в некоторых пятница - выходной :-)
В Израеле?
Нет, у них - суббота. Пянтица - выходной день во многих мусульманских странах, в том же Египте, например. И, кстати, первым днём недели там считается суббота. Так что поставновка задания "Дни недели без выходных" без привязки к конкретному географическому региону или даже стране некорректна.
...
Рейтинг: 0 / 0
06.08.2013, 16:35:57
    #38356996
Basil A. Sidorov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Дни недели без выходных
GarrickТак что поставновка задания "Дни недели без выходных" без привязки к конкретному географическому региону или даже стране некорректна.Делов-то ...
Всё, что не задано в условиях, трактуется в сторону упрощения. Поэтому субботы-воскресенья и никаких египтов с праздниками.
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Дни недели без выходных / 13 сообщений из 13, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]