Имя: Пароль:
IT
 
Как в Котлине подсчитать разницу во времени
Ø (Волшебник 15.10.2019 17:38)
0 sidalexsandr
 
26.09.19
18:42
Вот задача:
Поезд вышел со станции отправления в h1 часов m1 минут (например в 9:25) и
* прибыл на станцию назначения в h2 часов m2 минут того же дня (например в 13:01).
* Определите время поезда в пути в минутах (в данном случае 216).

Встроенных функций работы со временем не нашел. Что делать?
1 novichok79
 
26.09.19
18:44
Let's suppose we have two dates, exactly 6 months apart from each other:

1
2
var date1 = LocalDate.parse("2018-06-25")
var date2 = LocalDate.parse("2018-12-25")
Now, we can represent the distance between these two dates using Period's between method:

1
var period = Period.between(date1, date2)
2 novichok79
 
26.09.19
18:45
3 sidalexsandr
 
26.09.19
19:21
(1) Спасибо, но мне нужно время, а не дата
4 novichok79
 
26.09.19
19:24
(3) а если так?

class Time(internal var hours: Int, internal var minutes: Int, internal var seconds: Int)
fun main(args: Array<String>) {
    val start = Time(12, 34, 55)
    val stop = Time(8, 12, 15)
    val diff: Time
    diff = difference(start, stop)
    print("TIME DIFFERENCE: ${start.hours}:${start.minutes}:${start.seconds} - ")
    print("${stop.hours}:${stop.minutes}:${stop.seconds} ")
    print("= ${diff.hours}:${diff.minutes}:${diff.seconds}")
}
fun difference(start: Time, stop: Time): Time {
    val diff = Time(0, 0, 0)
    if (stop.seconds > start.seconds) {
        --start.minutes
        start.seconds += 60
    }
    diff.seconds = start.seconds - stop.seconds
    if (stop.minutes > start.minutes) {
        --start.hours
        start.minutes += 60
    }
    diff.minutes = start.minutes - stop.minutes
    diff.hours = start.hours - stop.hours
    return diff
}
5 sidalexsandr
 
26.09.19
19:41
(4) Спасибо, всё хорошо только секунды не нужны
6 mikecool
 
26.09.19
21:11
а что это за язык? оО
7 DES
 
26.09.19
21:19
(6) гуглу неймется
8 Волшебник
 
26.09.19
21:20
(6) Это теперь официальный язык от Google для программирования под Android вместо Java. Печалька, да?
9 mikecool
 
26.09.19
21:24
(8) та не... пусть балуются
я послушал вводные лекции по Go - понял, что в си-подобные языки пока не тянет
ковыряю понемногу питон, пока прикольно
10 Asmody
 
26.09.19
21:32
(0) [Что делать?] Взять java.time
11 Garykom
 
гуру
26.09.19
21:38
(0) >Что делать?

Заново идти в школу, можно с первого класса. Учить арифметику.

ЗЫ
В 1 часе 60 минут: (13*60+1) - (9*60+25) = ?
12 unbred
 
26.09.19
21:41
(11) красава
15 craxx
 
26.09.19
22:30
(8) Это Котлин, а гуглевский вроде Go
16 Волшебник
 
26.09.19
22:46
(15) На Google I/O 2019 было объявлено, что язык программирования Kotlin стал приоритетным в разработке под Android
17 sidalexsandr
 
29.09.19
21:41
(16) А как же теперь Java?
18 palsergeich
 
29.09.19
23:18
(17) как нибудь так. Но хипстера будут лячькать на котлине
19 APXi
 
30.09.19
08:30
(0) Неужели в столь современном языке нет таких простых функций? Если реально нет, то это пи...., если найти не можешь, то тоже пи....
20 Asmody
 
30.09.19
09:01
Вы пьяные штоль все?

val time1 = java.time.LocalTime.of(9, 25)
val time2 = java.time.LocalTime.of(13, 01)
val duration = java.time.Duration.between(time1, time2)
print(duration.toMinutes())
21 sidalexsandr
 
30.09.19
18:17
(20) Спасибо
22 sitex
 
naïve
30.09.19
18:21
(16) Ряды разрабов медленно стали кочевать , кто то повесился)
23 Garykom
 
гуру
01.10.19
08:13
(20) Как бы

val duration = (h2*60+m2)-(h1*60+m1)

сильно проще, шустрее и не надо лишнего импорта
24 Asmody
 
01.10.19
08:46
(23) Это ж java! Там без билдеров, фабрик, билдеров фабрик и фабрик билдеров вообще ничего не работает.
25 Asmody
 
01.10.19
08:47
И самое главное - ООП!
26 ДенисЧ
 
01.10.19
08:50
(25) ООП не нужен.
27 Asmody
 
01.10.19
08:52
(26) Нужен! Фузинцы не дадут соврать
28 ДенисЧ
 
01.10.19
08:53
(27) Вот они и пусть озобачиваются (ооп это же объекто-озабоченные перверсии, не так ли?)
29 sidalexsandr
 
03.10.19
16:49
Ещё задачка
* Мой возраст. Для заданного 0 < n < 200, рассматриваемого как возраст человека,
* вернуть строку вида: «21 год», «32 года», «12 лет».

Вопрос: подскажите закономерность
30 Garykom
 
гуру
03.10.19
17:34
if () {

} else if () {

} else if () {

} else if () {

} else
31 sidalexsandr
 
03.10.19
19:36
(30) Не понятно например 12 лет и 22 года
32 mikecool
 
03.10.19
19:49
(31) курсы какие то решил пройти?
33 Garykom
 
гуру
03.10.19
21:30
(31) У тебя промежутки целых чисел от 0 до 200, раздели их и засунь в if
34 Конструктор1С
 
04.10.19
03:49
(29) ориентируйся на последнюю цифру в числе

0 лет
1 год
2-4 года
5-9 лет
35 icipher
 
04.10.19
05:19
Для Сч = 0 По 200 Цикл
        Если (Сч < 5 ИЛИ Сч > 20) И (Сч % 10 = 1) Тогда  
            Постфикс = " год";
        ИначеЕсли (Сч < 5 ИЛИ Сч > 20) И ((Сч % 10 = 2) ИЛИ (Сч % 10 = 3) ИЛИ (Сч % 10 = 4)) Тогда
            Постфикс = " года";            
        Иначе
            Постфикс = " лет";
        КонецЕсли;
        
        Сообщить("" + Сч + Постфикс);
    КонецЦикла;

только для 111-114 некорректно выдает)
36 sidalexsandr
 
04.10.19
19:36
(34) 111 у тебя не прокатит
37 sidalexsandr
 
04.10.19
19:36
Ещё задачка
* Определить, пройдет ли кирпич со сторонами а, b, c сквозь прямоугольное отверстие в стене со сторонами r и s.
* Стороны отверстия должны быть параллельны граням кирпича.
* Считать, что совпадения длин сторон достаточно для прохождения кирпича, т.е., например,
* кирпич 4 х 4 х 4 пройдёт через отверстие 4 х 4.
* Вернуть true, если кирпич пройдёт
38 sidalexsandr
 
04.10.19
19:38
(32) Хожу бесплатно на лекции в Политех по Котлину для 1-го курса.
Вообще удивляет что над первым курсом приходится задумываться
39 Garykom
 
гуру
05.10.19
03:42
(37) Тупая задачка же на сочетания
ab,ba,ac,ca,bc,ca проверить <= rs
40 Конструктор1С
 
05.10.19
04:14
(36) ну тогда ещё предпоследнюю цифру тоже проверять
41 sidalexsandr
 
05.10.19
21:13
Ещё задачка
* Проверить, лежит ли окружность с центром в (x1, y1) и радиусом r1 целиком внутри
* окружности с центром в (x2, y2) и радиусом r2.
* Вернуть true, если утверждение верно

Сообразил когда x1=x2 и y1=y2 тогда внутри если R1<=r2

Вопрос: какие ещё случаи?
42 Garykom
 
гуру
05.10.19
21:25
(41) Одно условие всего же
(x1-r1)>=(x2-r2) and (x1+r1)<=(x2+r2) and (y1-r1)>=(y2-r2) and (y1+r1)<=(y2+r2)
45 Asmody
 
05.10.19
22:39
(43) свои стектрейсы в задницу себе засунь
46 sidalexsandr
 
05.10.19
22:45
(42) Не верно. Выдает ошибку
47 sidalexsandr
 
05.10.19
22:48
Сработало
if(r2 < r1)
    {
        return false
    }

    return (sqr(x2 - x1) + sqr(y2 - y1) <= sqr(r2-r1))
48 sidalexsandr
 
15.10.19
17:34
Найти n-ю цифру последовательности из квадратов целых чисел:
* 149162536496481100121144...
* Например, 2-я цифра равна 4, 7-я 5, 12-я 6.
*
* Использовать операции со строками в этой задаче запрещается.
49 Волшебник
 
15.10.19
17:38
(48) иди работай