Переделать секунды в минуты, часы, и дни
Такой вопрос у меня есть БД в которой есть поле length. Если число в БД будет 1800, то оно конвертируется в 30Мин. Или 3600 То в 1 час.
Или вот ещё пример -60 должно отобразится в «Сессия» Проблема в том, когда я пытаюсь сделать любое действие над Length Возникает ошибка TypeError: unsupported operand type(s) for /: ‘IntegerField’ and ‘int’ Так-же это все должно корректно отобразится в шаблоне. Надеюсь я понятно спросил, всем заранее спасибо!
Как перевести секунды в часы:минуты:секунды?
Задача:
Электронные часы показывают время в формате h:mm:ss, то есть сначала записывается количество часов, потом обязательно двузначное количество минут, затем обязательно двузначное количество секунд. Количество минут и секунд при необходимости дополняются до двузначного числа нулями.
С начала суток прошло n секунд. Выведите, что покажут часы.
1 2 3 4 5 6 7 8 9 10 11 12 13
a=int(input()) h=a//3600 m=(a//60)%60 s=a%60 if m10: m=str('0'+m) else: m=str(m) if s10: s=str('0'+s) else: s=str(s) print(str(h)+':'+str(m)+':'+str(s))
А вот это вообще решением не считает.
1 2 3 4 5 6 7 8 9 10 11 12 13
a=int(input()) h=a//3600 m=(a//60)%60 s=a%60 if m10: j=0 else: j='' if s10: t=0 else: t='' print(str(h)+':'+str(j)+str(m)+':'+str(t)+str(s))
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:
Сделайте так,чтобы число секунд отображалось в виде дни :часы: минуты: секунды /питон программа/
Сделайте так,чтобы число секунд отображалось в виде дни :часы: минуты: секунды /питон программа/
Как из минуты, часов, дней в секунды?
Здравствуйте. Суть идеи такова: Пользователь вводит строку, где указаны числа и буква, которая.
Разработать секундомер, который выводит минуты и секунды
Разработать секундомер, который выводит минуты и секунды. Вывод каждую 5- ую секунду. Пример.
840 / 478 / 58
Регистрация: 18.09.2012
Сообщений: 1,688
1 2 3 4 5 6 7 8 9 10 11 12 13
a=int(input()) h=str(a//3600) m=(a//60)%60 s=a%60 if m10: m='0'+str(m) else: m=str(m) if s10: s='0'+str(s) else: s=str(s) print(h+':'+m+':'+s)
Попробуйте.
135 / 120 / 37
Регистрация: 30.09.2012
Сообщений: 400
m=str('0'+m)
и т.п — ошибка в том что складываешь разные объекты — число со строкой.
140 / 50 / 2
Регистрация: 06.08.2013
Сообщений: 292
Записей в блоге: 4
Спасибо, не знал что это
m='0'+str(m)
надо делать именно так.
Однако: «Частичное решение.»
840 / 478 / 58
Регистрация: 18.09.2012
Сообщений: 1,688
MihaniX, ?
2740 / 2339 / 620
Регистрация: 19.03.2012
Сообщений: 8,830
1 2 3 4 5 6 7 8 9 10 11 12 13
a = int(raw_input()) h = a//3600 m = (a//60)%60 s = a%60 if m10: m = str('0' + str(m)) else: m = str(m) if s10: s = str('0' + str(s)) else: s = str(s) print(str(h) + ':' + str(m) + ':' + str(s))
Добавлено через 26 секунд
Опоздал маленько, ну ладно.
Добавлено через 48 секунд
Сообщение от MihaniX
Однако: «Частичное решение.»
Что не так?
140 / 50 / 2
Регистрация: 06.08.2013
Сообщений: 292
Записей в блоге: 4
tsar925, ошибка во время выполнения программы.
Wolkodav, я занимаюсь в informatics.mccme.ru
Отправляю файлы с задачами и они автоматически проверяются.
Добавлено через 40 секунд
Сообщение от tsar925
Что не так?
Сам в шоке. Говорит, что оно даст неверный ответ в некоторых случаях.
Добавлено через 1 час 14 минут
Up.
2740 / 2339 / 620
Регистрация: 19.03.2012
Сообщений: 8,830
Сообщение от MihaniX
tsar925, ошибка во время выполнения программы.
Ты запусти, что я прислал, ошибки нет.
Добавлено через 38 секунд
Почему возникала ошибка тебе написали ещё раньше меня. Когда отсылал сообщение не видел, что уже ответили.
140 / 50 / 2
Регистрация: 06.08.2013
Сообщений: 292
Записей в блоге: 4
Сообщение от tsar925
Ты запусти, что я прислал, ошибки нет.
Я запускал. raw_input на input() поменял. Работает. Мой вариант (второй из 1-ого поста) тоже работает. Но сраная машина пишет «Частичное решение»
Что делать?
2740 / 2339 / 620
Регистрация: 19.03.2012
Сообщений: 8,830
Сообщение от MihaniX
raw_input на input() поменял.
Ну да, у меня просто Python 2.x, а у тебя 3 версия похоже.
Это задание в какой теме ты там взял? Может тебе нужно применить знания полученные в текущем твоём курсе, а ты другим макаром делаешь.
140 / 50 / 2
Регистрация: 06.08.2013
Сообщений: 292
Записей в блоге: 4
Ну тогда подскажите как обойтись без if.
2740 / 2339 / 620
Регистрация: 19.03.2012
Сообщений: 8,830
Ты скажи, что за тему там сейчас изучаешь, в какому блоку теории прикрепляется это задание?
4866 / 3288 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
140 / 50 / 2
Регистрация: 06.08.2013
Сообщений: 292
Записей в блоге: 4
1 2 3 4 5
n=int(input()) h=str(n//3600) m=str((n//60)%60) s=str(n%60) print(h+':'+m+':'+s)
А это чем не подходит?
Добавлено через 42 секунды
Сообщение от accept
Как перевести секунды в часы, минуты и секунды
Добавлено через 1 минуту
Сообщение от tsar925
Ты скажи, что за тему там сейчас изучаешь, в какому блоку теории прикрепляется это задание?
Целочисленное деление, получение остатка от деления, переменные (строковые, числовые) и print.
4866 / 3288 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
Сообщение от MihaniX
А это чем не подходит?
нужно посчитанные часы вычитать из общего количества секунд и в оставшихся секундах выделять минуты
а у тебя вычисляются часы, а потом в этих же часах вычисляются минуты (эти минуты уже показываются в виде часов)
Добавлено через 2 часа 11 минут
походу, подходит
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
>>> def f(n): . return n // 3600, n // 60 % 60, n % 60 . >>> f(0) (0, 0, 0) >>> f(1) (0, 0, 1) >>> f(60) (0, 1, 0) >>> f(61) (0, 1, 1) >>> f(3600) (1, 0, 0) >>> f(3601) (1, 0, 1) >>> f(3661) (1, 1, 1) >>>
140 / 50 / 2
Регистрация: 06.08.2013
Сообщений: 292
Записей в блоге: 4
Да, но долбаная программа — проверяльщик все равно плюется.
135 / 120 / 37
Регистрация: 30.09.2012
Сообщений: 400
а всё потому что электронные часы имеют «период» в 24 часа. Другими словами — что покажут часы если прошло 2,5 суток? ))
140 / 50 / 2
Регистрация: 06.08.2013
Сообщений: 292
Записей в блоге: 4
1 2 3 4 5 6 7 8 9 10 11 12 13
a=int(input()) h=((a//3600))%24 m=(a//60)%60 s=a%60 if m10: m=str('0'+str(m)) else: m=str(m) if s10: s=str('0'+str(s)) else: s=str(s) print(str(h)+':'+str(m)+':'+str(s))
363 / 334 / 38
Регистрация: 29.03.2011
Сообщений: 838
Вроде нигде не видел условия, что форматирование строк нельзя использовать..
1 2 3 4 5 6 7 8
sec = int( input('Enter seconds: ') ) h = ((sec//3600))%24 m = (sec//60)%60 s = sec%60 print( '%d:%02d:%02d'% (h, m, s) ) # OR print( '::'.format(h, m, s) )
4866 / 3288 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
1 2 3
>>> '<>::'.format(1, 2, 3) '1:02:03' >>>
а заполнение по-другому используется
1 2 3
>>> ''.format(1) 'xx1' >>>
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
Помогаю со студенческими работами здесь
Создать программу на Python, которая превращает секунды в минуты
Создать программу на Python. Обязательно должен быть конструктор и метод(например getFormatTime()).
Как совершить выборку по часам с переменной типа ГОД-ЧИСЛО-ДАТА ЧАСЫ-МИНУТ-СЕКУНДЫ (2018-09-01 01:53:06.9130)?
В базе данных data, в столбе starttime записи имеют вид 2018-09-01 01:53:06.9130. Как совершить.
Как конвертировать секунды в значение UTC
Доброго времени суток! Есть такая проблема. В JSON приходит значение timezone в секундах, т.е.
Как читать изображение только 1 раз в 3 секунды opencv
Нужно получать изображение с камеры только 1 раз в 3 сек. в бесконечном цикле. Пробовал .
как получить unix из строки (день, месяц, год, часы, минуты)
получаю unix: unix =int(time.time()) из unix получаю дату в виде строки: str_date =.
Дополнительные секунды
Вы, наверное, замечали, что часы могут спешить или отставать, из-за чего координироватьдействия.
Как перевести секунды в минуты в python
Все, что необходимо начинающему и опытному программисту
Практический пример. Перевод секунд в дни, часы, минуты и секунды.
Надеемся, что название примера говорит само за себя. Поэтому запускайте и разбирайтесь.
using System; namespace CSharpApplication.ConvertSecondsExample < class ConvertSeconds < static void Main() < // Количество секунд в часе const ulong SecondsInDay = 60 * 60 * 24; ulong Seconds = 0; // Ожидаем корректного ввода while(Seconds == 0) < // Введите время в секундах в заданном диапазоне: Console.Write("Введите время в секундах "); Console.WriteLine("(от до ):", ulong.MinValue + 1, ulong.MaxValue); try < // Считываем введенное время и преобразуем его в ulong Seconds = Convert.ToUInt64(Console.ReadLine()); >catch(Exception ex) < // Ошибка ввода Console.WriteLine(ex.Message + " Попробуйте снова. \n"); >> // Вычисляем и выводим количество дней Console.WriteLine("Дней = ", Seconds / SecondsInDay); // Отбрасываем дни Seconds %= SecondsInDay; // Вычисляем и выводим количество часов Console.WriteLine("Часов = ", Seconds / 3600); // Отбрасываем часы Seconds %= 3600; // Вычисляем и выводим количество минут Console.WriteLine("Минут = ", Seconds / 60); // Вычисляем и выводим количество секунд Console.WriteLine("Секунд = ", Seconds % 60); // Ожидаем нажатия клавиши Enter Console.Write("\nНажмите Enter. "); Console.Read(); > > >
Практический пример. Нахождение самой длинной неубывающей цепочки случайных чисел.
Надеемся, что название примера говорит само за себя. Поэтому запускайте и разбирайтесь.
using System; class Sequence < public static void Main()< int i=0,cur,max=1,curmax=1; int border; int prev; Console.WriteLine("Введите количество членов цепочки:"); // Весь блок алгоритма заключаем в try/catch для перехвата исключений try< // Ввод количества элементов и перевод их в int border = Convert.ToInt32(Console.ReadLine()); Console.WriteLine("Ваш выбор элементов последовательности",border); // Создаём объект класса Random для генерации случайного числа // Начальная точка основывается на системном времени Random rand = new Random(); Console.WriteLine("Вот элементы последовательности:"); // Генерируется случайное число от 0 до 100 prev = rand.Next(0,100); Console.WriteLine("",prev); do< // Генерируется случайное число от 0 до 100 cur = rand.Next(0,100); if (cur>=prev) curmax++; else< if (curmax>max) max = curmax; curmax = 1; > prev = cur; Console.WriteLine("",cur); i++; >while(imax) max = curmax; // Показ полученного результата Console.WriteLine("\n\nМаксимальная Длина = \n\n",max); > // Обработка исключительной ситуации catch(Exception ex) < Console.WriteLine(ex.Message+" Не повезло . \n"); >// Задержка перед выходом Console.Read(); > >
Практический пример. Перевод из десятичной дроби в простую.
****** разделитель целой и дробной части числа зависит от локальных настроек операционной системы, поэтому, скорее всего, вам придется вводить дробное число через запятую (например, 1,56). ******
using System; namespace CSharpApplication.ConvertDecimalFractionToSimpleFraction < class Fraction < static void Main() < // Ввод дроби Console.Write("Введите число: "); try < // Попытка преобразования введенной строки в decimal DecimalToSimpleFraction(Convert.ToDecimal(Console.ReadLine())); >catch(FormatException error) < // Вывод сообщения об ошибки Console.WriteLine(error.Message); >Console.WriteLine("Нажмите Enter. "); Console.Read(); > // Функция перевода static void DecimalToSimpleFraction(decimal Number) < // Сохранение знака числа int Sign = 1; if(Number < 0) < Sign = -1; Number = -Number; >// Получение целой части числа int WholePart = (int)Number; // Получение дробной части числа decimal DoublePart = Number - WholePart; // Количество разрядов int Count = 0; // Пока дробное число не совпадет со своим целым эквивалентом while (DoublePart - (ulong)DoublePart != 0) < // Считаем разряды DoublePart *= 10; ++Count; >// Если дробная часть присутствовала if(Count > 0) < // Вычисление знаменателя decimal Denominator = Convert.ToDecimal(Math.Pow(10, Count)); // Вычисление наибольшего общего делителя decimal N = NOD(DoublePart, Denominator); // Сокращаем дробь DoublePart /= N; Denominator /= N; // Вывод результата if(WholePart != 0) Console.WriteLine(" / ", WholePart * Sign, DoublePart, Denominator); else Console.WriteLine(" / ", DoublePart * Sign, Denominator); > // Если дробная часть отсутствовала else Console.WriteLine("", WholePart * Sign); > // Функция, вычисляющая наибольший общий делитель static decimal NOD(decimal a, decimal b) < if(b == 0) return a; else return NOD(b, a % b); >> >
Домашнее задание
- Ввести с клавиатуры число в диапазоне от 100 до 100000000 (введенное число проверяется). Подсчитать количество четных и нечетных цифр в этом числе в процентном отношении.
- Ввести с клавиатуры номер трамвайного билета (6-значное число) и проверить является ли данный билет счастливым.
- Ввести с клавиатуры дату своего рождения и текущую дату. Необходимо вычислить разницу в днях между этими датами.
- Вывести на консоль изображение государственного флага Швейцарии (например, в виде звездочек). Размер стороны флага задается случайным числом в диапазоне от 21 до 41.
Библиотека программиста. 2009.
Администратор: admin@programmer-lib.ru
Как преобразовать секунды в часы-минуты-секунды
Задача 6.1.2.32
Дано натуральное число Т, которое представляет длительность прошедшего времени в секундах. Вывести данное значение длительности в часах, минутах и секундах в следующей форме: ЧЧ:ММ:СС, где ЧЧ — это часы, ММ — минуты, СС — секунды.
Довольно любопытная задача, которая на первый взгляд кажется простой. Однако новичкам с ней придётся помучиться. Кстати, прежде чем посмотреть моё решение, предлагаю сначала именно помучиться и попробовать решить задачу самостоятельно, потому как только так можно стать программистом.
Итак, давайте сначала поразмышляем над алгоритмом решения. Сразу уточню, что по условию задачи надо преобразовать секунды в формат ЧЧ:ММ:СС, то есть о количестве дней, месяцев, лет и т.п. речь не идёт. Отсюда принимаем, что количество секунд в нашем случае не может быть больше, чем количество секунд в сутках.
А теперь действия, которые надо выполнить для решения:
- Определить общее число минут (выполнить целое деление числа Т на 60).
- Вычислить количество секунд (вычесть из числа Т общее число минут, умноженное на 60).
- Определить число часов (выполнить целое деление количества минут на 60).
- Вычислить число минут.
Возможно, что-то осталось непонятным, но это что-то станет понятным при изучении примеров программ на Паскале и С++.
Решение задачи 6.1.2.32 на Паскале
program mytask; //**************************************************************** // КОНСТАНТЫ //**************************************************************** const MAX_TIME = 24 * 60 * 60; //Число секунд в сутках //**************************************************************** // ГЛОБАЛЬНЫЕ ПЕРЕМЕННЫЕ //**************************************************************** var ElapsedTime : WORD; H, M, S : DWORD; //**************************************************************** // ОСНОВНАЯ ПРОГРАММА //**************************************************************** begin Randomize; ElapsedTime := Random(MAX_TIME); WriteLn('Elapsed time in seconds : ', ElapsedTime); M := ElapsedTime div 60; //Общее число минут S := ElapsedTime - (M * 60); //Число секунд H := M div 60; //Число часов M := M - (H * 60); //Число минут WriteLn('Elapsed time as HH:MM:SS : ', H, ':', M, ':', S); WriteLn('The end. Press ENTER. '); ReadLn; end.
Решение задачи 6.1.2.32 на С++
#include #include #include //. Подключить этот модуль, если ругается на srand //******************************************************************* // КОНСТАНТЫ //******************************************************************* const long MAX_TIME = 24 * 60; //Число минут в сутках using namespace std; long ElapsedTime; long H, M, S; //******************************************************************* // ОСНОВНАЯ ПРОГРАММА //******************************************************************* int main(int argc, char *argv[]) < srand(time(0)); //Запустить генератор случайных чисел ElapsedTime = (rand() % MAX_TIME) * (rand() % 60); cout << "Elapsed time in seconds : " << ElapsedTime << endl; M = ElapsedTime / 60; //Общее число минут S = ElapsedTime - (M * 60); //Число секунд H = M / 60; //Число часов M = M - (H * 60); //Число минут cout
На рисунке также показан калькулятор, с помощью которого мы можем убедиться, что программа работает правильно.
ПРИМЕЧАНИЕ
Поскольку функция rand() в С++ обычно возвращает случайное число в заданном диапазоне, но не более 32767, то попытка указать, например, rand() % 80000 , приведёт к тому, что функция будет всегда возвращать число, близкое к 20000 (в моём случае), что является не очень “случайным” числом. Поэтому пришлось немного поизвращаться, чтобы число было действительно более-менее случайным.
ВНИМАНИЕ!
Если вам что-то осталось непонятно, то советую почитать книги “Основы программирования” и “Основы С++”.