Loading...
vonrepiks avatar vonrepiks 6 Точки

Задача "Time + 15 Minutes" в Simple Conditional Statements

Здравейте,

моля някой да ми помогне със старта на тази задача:

"Да се напише програма, която въвежда час и минути от 24-часово денонощие и изчислява колко ще е часът след 15 минути. Резултатът да се отпечата във формат hh:mm. Часовете винаги са между 0 и 23, а минутите винаги са между 0 и 59. Часовете се изписват с една или две цифри. Минутите се изписват винаги с по две цифри, с водеща нула когато е необходимо."

, не мога да измисля, как да обединя двете числа в DateTime формат.

Моля за подсказка, не за решение.

Поздрави,

Тагове:
0
Programming Basics
M1lenkov avatar M1lenkov 3 Точки

Задачата има решение и без DateTime.

1
vonrepiks avatar vonrepiks 6 Точки

Благодаря, ти много това ми трябваше. Да помисля в друга посока и я реших бързо.

Поздрави,

1
krum_43 avatar krum_43 756 Точки

Този метод едва ли ще ти свърши работа ?!?

0
23/01/2021 07:32:54
kiso_blg avatar kiso_blg 57 Точки

Изпиши DateTime променливата като string и й посочи в какъв формат и какво да изписва.

1
02/03/2016 21:23:24
Filkolev avatar Filkolev 4482 Точки

Или в C# 6:

Console.WriteLine($"{time:H:mm}");

1
Demis avatar Demis 0 Точки

Здравейте и аз съм забил на тази задача от вчера, донякъде я издокарвам, в judge-а ми дава 35/100, но има някой неща които не ми се получават. Ако някой добър човечец прати кода, за да видя къде ми е грешката, няма да му се разсърда :)).

0
tochy avatar tochy 7 Точки

using System;

   public class myclass
    {
        public static void Main(string[] args)
        {
           var hour = int.Parse(Console.ReadLine());
            var min = int.Parse(Console.ReadLine());
            
            var sum =((hour*60) + min +15);
            var  resulthour = sum/60;
            if (resulthour >= 24)
            {
                resulthour -= 24;
            }
            var resultmin = sum % 60;
        
            Console.WriteLine("{0}:{1:00}",resulthour,resultmin);
       }
   }

7
Demis avatar Demis 0 Точки

10x bratochka :)

0
TeodorDimitrov89 avatar TeodorDimitrov89 264 Точки

Ако ти е интересно моето решение 

http://pastebin.com/E3CAuyM1

0
supersane avatar supersane 234 Точки

От курса по Python научих, че си има тънкости, когато се работи с време и дати. Ако целта на задачата е просто да добавите 15 минути и да проверите дали се увеличава часа или не с един if, добре, може да не се ползва DateTime. Но ако някой ден ви се наложи да пишете софтуер, който ще изчислява време и дати е добре да използвате това, което ви предлага съответния език за работа с време и дати. Бих казал, че това е част от добрите практики на един бъдещ програмист, а защо е важно да се работи внимателно с време и дати може доста да се изговори. В случая на C#, видях че има метод на класа DateTime, който се казва AddMinutes(), така че мисля, че е най-добре часа да се парсва във формат DateTime и после да се използва въпросния метод. Надявам се да съм бил полезен!

1
04/03/2016 23:43:31
fbinnzhivko avatar fbinnzhivko 1586 Точки

100/100 -   https://judge.softuni.bg/Contests/Practice/Index/152#13

using System;

class Program
{
    static void Main()
    {
        var hour = int.Parse(Console.ReadLine());
        var minutes = int.Parse(Console.ReadLine());

        var totalMin = minutes + 15;
        var totalHour = hour + totalMin / 60;
        var minutesAfterHour = totalMin % 60;

        if (totalHour == 24)
        {
            Console.WriteLine("0:{0:00}", minutesAfterHour);
        }
        else
        {
            Console.WriteLine("{0:0}:{1:00}", totalHour, minutesAfterHour);
        }

    }
}

1
05/03/2016 18:23:08
fbinnzhivko avatar fbinnzhivko 1586 Точки

100/100 -   https://judge.softuni.bg/Contests/Practice/Index/152#13

using System;

class Program
{
    static void Main()
    {
        var hour = int.Parse(Console.ReadLine());
        var minutes = int.Parse(Console.ReadLine());
        
        TimeSpan span = new TimeSpan(hour, minutes, 0);
        TimeSpan span2 = new TimeSpan(0, 15, 0);
        TimeSpan total = span + span2;

        Console.WriteLine("{0:h\\:mm}", total);
    }
}

0
Bozhidar.Vangelov avatar Bozhidar.Vangelov 4 Точки

Здравейте,

Разгледах чуждите решения и не намерих нещо подобно на моето, което е почти вярно. Проблема ми е само това, че когато въведа нещо над 23:45 ми го прави на 24:... заради 15 минути които добавям още при четене в конзолата. Има ли начин да се реши с малка редакция на моя код?

Решение

0
15/03/2016 19:58:59
ralitsa_d avatar ralitsa_d 171 Точки

Премести проверката за часа в if-a с проверката за минутите.

Така няма да я прескачаш, ако минутите са повече от 59.

Надявам се, че успях да помогна :)

1
peterkk avatar peterkk 0 Точки
using System;

namespace TimePlus15Minutes
{
    class Program
    {
        static void Main(string[] args)
        {
            int hours = int.Parse(Console.ReadLine());
            int minutes = int.Parse(Console.ReadLine()) + 15;
            string zero = "";

            if (minutes > 59)
            {
                hours += 1;
                minutes -= 60;
            }

            if (minutes < 10)
            {
                zero = "0";
            }

            Console.WriteLine("{0}:{1}{2}", hours % 24, zero, minutes % 60);
        }
    }
}

Това е моето решение. Също 100/100. Дали е най-доброто - спецовете ще кажат :)

0
LeCannibale avatar LeCannibale 3 Точки

Решение с if - ове //


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApplication7
{
    class Program
    {
        static void Main(string[] args)
        {

            int h = int.Parse(Console.ReadLine());
            int m = int.Parse(Console.ReadLine());

            int houre = h;
            int minutes = (m % 60) + 15;

            if (minutes > 59)
            {
                houre += 1;
                minutes -= 60;
            }

            if ( houre > 23)
            {
                houre = 0;
            }

 


            if (minutes < 10)
            {
                Console.WriteLine(houre + ":0" + minutes);
            }

            else
            {
                Console.WriteLine("{0}:{1}", houre, minutes);
            }

        }
    }
}

0
dani111 avatar dani111 3 Точки

Ето и моето решение:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApplication3
{
    class Program
    {
        static void Main(string[] args)
        {
            var hour = int.Parse(Console.ReadLine());
            var minutes = int.Parse(Console.ReadLine());
            var newminutes = (minutes + 15);
                if (newminutes >= 60)
            {
                hour = hour + 1;
                newminutes = newminutes - 60;
            }

            if (hour == 24)
            {
                Console.WriteLine("0" + ":" + newminutes.ToString("00"));
            }
              else  Console.WriteLine(hour + ":" + newminutes.ToString("00"));
            }
        }
    }

0
Isibel avatar Isibel 41 Точки

Ето едно решение без DateTime.

 

int hours = int.Parse(Console.ReadLine());
int minutes = int.Parse(Console.ReadLine());

int sumOfMinutes = (hours * 60) + minutes;
sumOfMinutes = sumOfMinutes + 15;

int resultHour = sumOfMinutes / 60;
int resultMinutes = sumOfMinutes % 60;

Console.WriteLine($"{resultHour % 24}:{resultMinutes:D2}");

1
DenitsaDucDatseva avatar DenitsaDucDatseva 0 Точки

Аз съм използвала TimeSpan за добавянето на минутите и после ToString(@"h\:mm"), за да форматира времето. Дано е от полза :)

0
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.