Чисто математическая задача

  • Автор темы Автор темы impul5e
  • Дата начала Дата начала

impul5e

Client
Регистрация
15.08.2017
Сообщения
202
Реакции
40
Баллы
28
Ребята, подскажите как правильно посчитать. Задача в том, что есть два времени, допустим 14:20 и 15:30 и мне нужно посчитать целое кол-во часов между этими цифрами, НО! засчитывать час нужно при пересечении значения в 10 минут (11:10, 12:10 и тп).
Например, если время 11:11 и 12:09 - это ноль часов,
а 12:09 и 12:11 - это 1 час.
Буду благодарен за помощь.
 
1) сделать цикл с увеличением времени на 1 минуту между первой датой и второй.
2) Каждый результат внутри цикла сравнивать. Как только в теле цикла встретится дата с 10 минутами, ну типа "хх:10", то увеличивать отдельный счётчик №2 на единицу. (ну то есть парсить с получаемой даты в цикле только числовое значение "минут")
3) Потом в конце цикла значение "отдельного счетчика №2" и будет ваш финальный результат.
 
  • Оценить
Реакции: impul5e
вычитаешь одно время из другого, получаешь тотальное значение из этой разницы в часах. больше ничего не надо. разнице времени вообще пофигу с нуля ты считаешь часы или с 10 минут.
 
вычитаешь одно время из другого, получаешь тотальное значение из этой разницы в часах. больше ничего не надо. разнице времени вообще пофигу с нуля ты считаешь часы или с 10 минут.
нет, у него в ТЗ так сформировано что надо считать просто сколько раз стрелка минутная перешла через метку в 10 минут. Не отрезок, а именно метку на часах.
 
  • Оценить
Реакции: impul5e
Ребята, подскажите как правильно посчитать. Задача в том, что есть два времени, допустим 14:20 и 15:30 и мне нужно посчитать целое кол-во часов между этими цифрами, НО! засчитывать час нужно при пересечении значения в 10 минут (11:10, 12:10 и тп).
Например, если время 11:11 и 12:09 - это ноль часов,
а 12:09 и 12:11 - это 1 час.
Буду благодарен за помощь.
Привет. Не оч силен с подсчетом времени, думаю примерно так:
C#:
Развернуть Свернуть Копировать
// Вреенные метки
string time1 = "14:20";
string time2 = "15:30";

// Преобразование времени в формат DateTime
DateTime datetime1 = DateTime.ParseExact(time1, "HH:mm", CultureInfo.InvariantCulture);
DateTime datetime2 = DateTime.ParseExact(time2, "HH:mm", CultureInfo.InvariantCulture);

// Определение значений времени, которые нужно учитывать
int minutesToCount = 10;

// Вычисление разницы между временными метками в минутах
TimeSpan diff = datetime2 - datetime1;
double totalMinutes = diff.TotalMinutes;

// Подсчет количества часов с учетом условий задачи
double hours = Math.Floor(totalMinutes / 60);
for (DateTime i = datetime1; i < datetime2; i = i.AddMinutes(minutesToCount))
{
    if (i.Minute % minutesToCount == 0 && i.Minute != 0)
    {
        hours += 1;
    }
}

// Результат
project.SendInfoToLog(String.Format("Количество часов: {0}",hours),true);
 
  • Оценить
Реакции: impul5e
нет, у него в ТЗ так сформировано что надо считать просто сколько раз стрелка минутная перешла через метку в 10 минут. Не отрезок, а именно метку на часах.
нет. читаем тз еще разок :bk: он хочет считать отрезок времени, а не сколько раз 10-ка прошла. иначе его 2 примера не валидны ;-)
хотя... может и да :D
 
нет. читаем тз еще разок :bk: он хочет считать отрезок времени, а не сколько раз 10-ка прошла. иначе его 2 примера не валидны ;-)
хотя... может и да :D
Может не совсем понятно объяснил, но orka13 прав! Нужно подсчитать кол-во прохождений через 10 минутный барьер каждого часа)) Если вкратце.
 
Привет. Не оч силен с подсчетом времени, думаю примерно так:
C#:
Развернуть Свернуть Копировать
// Вреенные метки
string time1 = "14:20";
string time2 = "15:30";

// Преобразование времени в формат DateTime
DateTime datetime1 = DateTime.ParseExact(time1, "HH:mm", CultureInfo.InvariantCulture);
DateTime datetime2 = DateTime.ParseExact(time2, "HH:mm", CultureInfo.InvariantCulture);

// Определение значений времени, которые нужно учитывать
int minutesToCount = 10;

// Вычисление разницы между временными метками в минутах
TimeSpan diff = datetime2 - datetime1;
double totalMinutes = diff.TotalMinutes;

// Подсчет количества часов с учетом условий задачи
double hours = Math.Floor(totalMinutes / 60);
for (DateTime i = datetime1; i < datetime2; i = i.AddMinutes(minutesToCount))
{
    if (i.Minute % minutesToCount == 0 && i.Minute != 0)
    {
        hours += 1;
    }
}

// Результат
project.SendInfoToLog(String.Format("Количество часов: {0}",hours),true);
Компиляция кода Ошибка в действии "CS0103" "The name 'CultureInfo' does not exist in the current context". [Строка: 6; Cтолбец: 58]
 
Привет. Не оч силен с подсчетом времени, думаю примерно так:
C#:
Развернуть Свернуть Копировать
// Вреенные метки
string time1 = "14:20";
string time2 = "15:30";

// Преобразование времени в формат DateTime
DateTime datetime1 = DateTime.ParseExact(time1, "HH:mm", CultureInfo.InvariantCulture);
DateTime datetime2 = DateTime.ParseExact(time2, "HH:mm", CultureInfo.InvariantCulture);

// Определение значений времени, которые нужно учитывать
int minutesToCount = 10;

// Вычисление разницы между временными метками в минутах
TimeSpan diff = datetime2 - datetime1;
double totalMinutes = diff.TotalMinutes;

// Подсчет количества часов с учетом условий задачи
double hours = Math.Floor(totalMinutes / 60);
for (DateTime i = datetime1; i < datetime2; i = i.AddMinutes(minutesToCount))
{
    if (i.Minute % minutesToCount == 0 && i.Minute != 0)
    {
        hours += 1;
    }
}

// Результат
project.SendInfoToLog(String.Format("Количество часов: {0}",hours),true);
Подправил, вот так работает:
C#:
Развернуть Свернуть Копировать
string Time_old = project.Variables["timenow2"].Value;
DateTime datetime1 = DateTime.ParseExact(Time_old, "MM/dd/yyyy HH:mm:ss", null);
string Time_new = project.Variables["date_now"].Value;
DateTime datetime2 = DateTime.ParseExact(Time_new, "MM/dd/yyyy HH:mm:ss", null);

// Определение значений времени, которые нужно учитывать
int minutesToCount = 10;

// Вычисление разницы между временными метками в минутах
TimeSpan diff = datetime2 - datetime1;
double totalMinutes = diff.TotalMinutes;

// Подсчет количества часов с учетом условий задачи
double hours = Math.Floor(totalMinutes / 60);
for (DateTime i = datetime1; i < datetime2; i = i.AddMinutes(minutesToCount))
{
    if (i.Minute % minutesToCount == 0 && i.Minute != 0)
    {
        hours += 1;
    }
}

// Результат
project.SendInfoToLog(String.Format("Количество часов: {0}",hours),true);
 
  • Оценить
Реакции: artsmm

Кто просматривает тему: (Всего: 0, Пользователи: 0, Гости: 0)