Форум программистов, компьютерный форум, киберфорум
Наши страницы

Программирование Android

Войти
Регистрация
Восстановить пароль
 
 
Soprano6111
2 / 2 / 0
Регистрация: 09.04.2015
Сообщений: 90
#1

Заполнение массива данных циклом с интревалом (15 минут) - Программирование Android

22.07.2015, 16:09. Просмотров 418. Ответов 15
Метки нет (Все метки)

День добрый , требуется заполнить массив цифрами в формате времени от 00:00 до 23:45

с интервалом в 15 минут

скажем заходим в активити и видим список - 00:00 . 00:15 . 00:30 и т.д.
Кто подскажет как разработать такой цикл?

на данный момент есть вот такой - появляется список с 96 элементами.


Java
1
2
3
4
5
6
7
8
9
  private void initList() {
        timeChekList = new ArrayList<>();
        for (int i = 0; i < 95; i++) {
            m = new HashMap<String, Object>();
            m.put(ATTRIBUTE_NAME_TEXT, "00:00" + i);
            // m.put(ATTRIBUTE_NAME_IMAGE, R.drawable.power);
            timeChekList.add(String.valueOf(m));
        }
    }
Нашёл поиском похожую постановку - только на PhP - перевести в Java не получ.)

Увеличение времени на 15 минут в цикле PHP

ещё вот - но похоже не подходит - http://forum.sources.ru/index.php?showtopic=389065

Есть предложения?)
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.07.2015, 16:09
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Заполнение массива данных циклом с интревалом (15 минут) (Программирование Android):

Заполнение массива циклом - C#
Здравствуйте! Я новичок. Помогите пожалуйста сделать вот что. Заполнить массив циклом от 0 до 99 и вывести каждый индекс массива на...

Заполнение динамического массива циклом For. - Delphi
вырезал часть кода //================================GLOBAL VARIABLES============================= CONST ParcelConst =...

Заполнение ячеек в Excel циклом for - VBA
Ячейки в Excel данным способом почему-то не заполняются. Почему? Как это исправить? Sub t() Dim teta As Double teta = 0 For i =...

Заполнение нескольких списков циклом - JavaScript
Доброго времени суток. Имеется например 3 списка, а если их больше? Так вот ручками прописывать все в скрипте и заполнять их циклом не...

Заполнение окон редактирования одним циклом - C++ Builder
Привет, коммьюнити! Сидел я, значит, нажимал Ctrl+C, Ctrl+V, да только и поспевал порядковые номера компонентов редактировать. А потом...

AS 3.0 Заполнение данных и их считывание из массива - ActionScript
package { import flash.events.*; import flash.display.*; import flash.net.*; public class getDate{ private...

15
Soprano6111
2 / 2 / 0
Регистрация: 09.04.2015
Сообщений: 90
22.07.2015, 16:10  [ТС] #2
ах да ,вот скрин.
0
Миниатюры
Заполнение массива данных циклом с интревалом (15 минут)  
Pablito
2631 / 2113 / 656
Регистрация: 12.05.2014
Сообщений: 7,398
Завершенные тесты: 1
22.07.2015, 17:43 #3
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
        String[] lazyBitch = {
                "00:00", "00:15", "00:30", "00:45", "01:00", "01:15", "01:30", "01:45",
                "02:00", "02:15", "02:30", "02:45", "03:00", "03:15", "03:30", "03:45",
                "04:00", "04:15", "04:30", "04:45", "05:00", "05:15", "05:30", "05:45",
                "06:00", "06:15", "06:30", "06:45", "07:00", "07:15", "07:30", "07:45",
                "08:00", "08:15", "08:30", "08:45", "09:00", "09:15", "09:30", "09:45",
                "10:00", "10:15", "10:30", "10:45", "11:00", "11:15", "11:30", "11:45",
                "12:00", "12:15", "12:30", "12:45", "13:00", "13:15", "13:30", "13:45",
                "14:00", "14:15", "14:30", "14:45", "15:00", "15:15", "15:30", "15:45",
                "16:00", "16:15", "16:30", "16:45", "17:00", "17:15", "17:30", "17:45",
                "18:00", "18:15", "18:30", "18:45", "19:00", "19:15", "19:30", "19:45",
                "20:00", "20:15", "20:30", "20:45", "21:00", "21:15", "21:30", "21:45",
                "22:00", "22:15", "22:30", "22:45", "23:00", "23:15", "23:30", "23:45"};
и можно потом в цикле хоть боком, хоть сзади дописывать что угодно и форматировать что угодно
0
Rube
911 / 559 / 88
Регистрация: 13.02.2014
Сообщений: 2,072
23.07.2015, 08:20 #4
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Java
1
2
3
for (int h = 0; h < 24; h++)
   for (int m = 0; m < 60; m += 15)
      System.out.println((h < 10 ? "0" + h : h) + ":" + (m == 0 ? "0" + m : m));
1
Soprano6111
2 / 2 / 0
Регистрация: 09.04.2015
Сообщений: 90
23.07.2015, 09:54  [ТС] #5
Ну Паблито , в том то и фишка что бы код был идеальный сделать цикл а не писать ручками как у тебя в примере ...
0
Valakin
431 / 97 / 15
Регистрация: 21.02.2015
Сообщений: 736
23.07.2015, 10:07 #6
фишка в том чтобы делать быстрее, если массив короткий иногда быстрее его "руками" написать
0
Pablito
2631 / 2113 / 656
Регистрация: 12.05.2014
Сообщений: 7,398
Завершенные тесты: 1
23.07.2015, 10:13 #7
Цитата Сообщение от Soprano6111 Посмотреть сообщение
Ну Паблито , в том то и фишка что бы код был идеальный сделать цикл а не писать ручками как у тебя в примере
не ты ли мне в соседней теме писал?
Цитата Сообщение от Soprano6111 Посмотреть сообщение
его приём куда трудоёмкий в плане написания кода - а делается всё очень просто как я изложил выше - старая школа просто не может принять нововведений и делает всё по своему. А как известно чем проще код - тем он ценней.
1
Spelcrawler
531 / 501 / 111
Регистрация: 12.03.2014
Сообщений: 1,666
Завершенные тесты: 1
23.07.2015, 11:03 #8
А можно еще круче)
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
private List<String> generateTimes(int addedField, int addedValue){
        Calendar calendar = Calendar.getInstance();
        int startDay = 1;
        calendar.set(1, 1, startDay, 0, 0, 59);
        SimpleDateFormat format = new SimpleDateFormat("HH:mm");
        List<String> times = new ArrayList<>();
        times.add(format.format(calendar.getTime()));
        while (calendar.get(Calendar.DAY_OF_MONTH) == startDay){
            calendar.add(addedField, addedValue);
            if(!(calendar.get(Calendar.HOUR_OF_DAY) == 0 && calendar.get(Calendar.MINUTE) == 0))
                times.add(format.format(calendar.getTime()));
        }
        return times;
    }
И генерить время с любым промежутком:
Java
1
List<String> times = generateTimes(Calendar.MINUTE, 15);
1
Soprano6111
2 / 2 / 0
Регистрация: 09.04.2015
Сообщений: 90
23.07.2015, 11:13  [ТС] #9
Есть старая детская книжка c# для школьников - в ней есть такая Цитата -

Примечание редактора. Умный программист пишет не только короткий, но и понятный код. Хороший код всегда содержит комментарии умного программиста.

Как видим, код позволяет сэкономить и занимаемое пространство, и затраченные усилия. Всегда старайтесь делать код как можно более кратким – чем короче программа, тем умнее программист.

и вот Картинка - Паблито ты девочка справа ))))).
0
Миниатюры
Заполнение массива данных циклом с интревалом (15 минут)  
Soprano6111
2 / 2 / 0
Регистрация: 09.04.2015
Сообщений: 90
23.07.2015, 11:15  [ТС] #10
Valakin - полностью с тобой согласен , но в данном контексте задача - сделать красивую функцию.см 1й пост).
0
Rube
911 / 559 / 88
Регистрация: 13.02.2014
Сообщений: 2,072
23.07.2015, 11:24 #11
Цитата Сообщение от Soprano6111 Посмотреть сообщение
сделать красивую функцию
Да твоя задача то - детская, тут и ребенок справится, давай посложнее чегонить)
0
Soprano6111
2 / 2 / 0
Регистрация: 09.04.2015
Сообщений: 90
23.07.2015, 11:25  [ТС] #12
даже не знаю кому отдать лучший ответ по теме )) Spelcrawler или Rube..
0
Rube
911 / 559 / 88
Регистрация: 13.02.2014
Сообщений: 2,072
23.07.2015, 11:28 #13
Вопрос про цикл был, ответ очевиден
0
Soprano6111
2 / 2 / 0
Регистрация: 09.04.2015
Сообщений: 90
23.07.2015, 11:45  [ТС] #14
private List<String> generateTimes(int addedField, int addedValue){
Calendar calendar = Calendar.getInstance();
int startDay = 1;
calendar.set(1, 1, startDay, 0, 0, 59);
SimpleDateFormat format = new SimpleDateFormat("HH:mm");
List<String> times = new ArrayList<>();
times.add(format.format(calendar.getTime()));
while (calendar.get(Calendar.DAY_OF_MONTH) == startDay){
calendar.add(addedField, addedValue);
if(!(calendar.get(Calendar.HOUR_OF_DAY) == 0 && calendar.get(Calendar.MINUTE) == 0))
times.add(format.format(calendar.getTime()));
}
return times;
}


У меня получилось вот так -
0
Soprano6111
2 / 2 / 0
Регистрация: 09.04.2015
Сообщений: 90
23.07.2015, 11:45  [ТС] #15
123
0
Миниатюры
Заполнение массива данных циклом с интревалом (15 минут)   Заполнение массива данных циклом с интревалом (15 минут)  
23.07.2015, 11:45
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.07.2015, 11:45
Привет! Вот еще темы с ответами:

Заполнение массива собственным типом данных - Delphi
Здравствуйте, подскажите пожалуйста как записать свой тип данных в массив. Создал свой тип type coordinaty=record ...

ProgressBar - заполнение в течении 30 минут - C++ Builder
Доброго времени суток, помоги пожалуйста, у меня на форме есть ТАймер и прогресс бар, как сделать что б прогрес бар заполнялся в течении 30...

Создание и заполнение двумерного массива из данных в excel - VBA
Есть 2 столбца в excel со значениями x и у. Известно, что данные записаны в столбцах A и B соответственно. Сколько строк неизвестно. ...

Ввод данных через запятую, заполнение массива - Java SE
Сколько ищу, никак не могу найти. Как можно сделать так, чтобы при вводе чисел в консоль (!через запятую!) заполнялся массив из 8 значений...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru