Loading...
DimitrovDelyan avatar DimitrovDelyan 0 Точки

c# tech lab 04.Back in 30 minutes

Здравейте, джъдж ми дава 100 от 100 на тази задча, но не ми харесва как съм написал кода. Ако някой може някой да ми даде по оптимален начин за решението ще съм много благодарен.

using System;

namespace back_in_30_minutes
{
    class Program
    {
        static void Main(string[] args)
        {
            int a = int.Parse(Console.ReadLine());
            int b = int.Parse(Console.ReadLine());
            b += 30;
            if(b>60)
            {
                a++;
                b -= 60;
            }
            if(a>=24)
            {
                a -= 24;
            }
            DateTime time = new DateTime(2008, 1, 1, a, b, 1);
           if(a<10) Console.WriteLine(time.ToString("H:mm"));
            else Console.WriteLine(time.ToString("HH:mm"));
        }
    }
}

Тагове:
0
Module: C# Advanced
lilweezy avatar lilweezy 12 Точки

Ето две от мен:
1)

int hour = int.Parse(Console.ReadLine());
            int minutes = int.Parse(Console.ReadLine())+30;
            if (minutes > 59)
            {
                hour += 1;
                if (hour > 23)
                {
                    hour -= 24;
                }
                minutes -= 60;
            }
            if (minutes<10)
            {
                Console.WriteLine(hour+":"+"0"+minutes);
            }
            else if (minutes>=10)
            {
                Console.WriteLine(hour + ":" + minutes);
            }

2)

int hour = int.Parse(Console.ReadLine());
            int minutes = int.Parse(Console.ReadLine());
            int finalTimeInMins = (hour * 60) + (minutes + 30);
            if (finalTimeInMins/60>23)
            {
                finalTimeInMins -= 24 * 60;
            }
            if (finalTimeInMins%60<10)
            {
                Console.WriteLine(finalTimeInMins / 60 + ":" + "0"+finalTimeInMins % 60);
            }
            else
            {
                Console.WriteLine(finalTimeInMins / 60 + ":" + finalTimeInMins % 60);
            }

0
DimitrovDelyan avatar DimitrovDelyan 0 Точки

И аз се сетих за първия вариант, но ми се искаше да упражня DateTime. Мисля че най- оптималния вариант за решението на задачата ще стана точно с него. 

0
Yolito avatar Yolito 9 Точки

Това е моето решение с DateTime ( лектора спомна и за решение с TimeSpan, може да потърсиш):

using System;

namespace _4.BackIn30Minutes
{
    class Program
    {
        static void Main(string[] args)
        {
            int hours = int.Parse(Console.ReadLine());
            int minutes=int.Parse(Console.ReadLine());

            var date = new DateTime(2019, 01, 22, hours, minutes, 00);
            date = date.AddMinutes(30);
            if (date.Minute >= 1 && date.Minute <=9)
            {
                Console.WriteLine(date.Hour + ":0" + date.Minute);
            }
            else
            {
                Console.WriteLine(date.Hour+":"+date.Minute);
            }
        }
    }
}
 

2
Stankoniia avatar Stankoniia 3 Точки

Eто едно кратко решение в четири реда:

namespace L04BackIn30Minutes
{
    using System;

    class BackIn30Minutes
    {
        static void Main()
        {
            int hoursInput = int.Parse(Console.ReadLine());
            int minutesInput = int.Parse(Console.ReadLine());

            int after30Minutes = (hoursInput * 60) + minutesInput + 30;
            int hoursOutput = (after30Minutes / 60) % 24;
            int minutesOutput = after30Minutes % 60;

            Console.WriteLine($"{hoursOutput}:{minutesOutput:D2}");
        }
    }
}

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