Loading...
ioannah avatar ioannah 18 Точки

[Programming Basics] [C#] Логически проверки - 15. Time + 15 Minutes

  Това е решението ми - 47/100.:

https://pastebin.com/Gkhawd0j

Може ли някой да ми каже по друг начин как може да се направи тази задача?Най-вече какви са най-удобните варианти за слагане на нула пред число?

 Другият ми въпрос е как да  накарам джъджа да ми дава 100/100 ?? 

Тагове:
1
Programming Basics 17/07/2017 23:19:49
VasilKotsev avatar VasilKotsev 830 Точки
Best Answer

Ето и моето решение изцяло с DateTime:

100/100 Judge

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

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

            int hrs_input = int.Parse(Console.ReadLine());
            int min_input = int.Parse(Console.ReadLine());

            string both = (hrs_input.ToString() + ":" + min_input.ToString("00"));
            
            DateTime chasiminuti = DateTime.ParseExact(both,"H:mm",CultureInfo.InvariantCulture);
            DateTime after15 = chasiminuti.AddMinutes(15);

            Console.WriteLine(after15.ToString("H:mm"));
 


        }
    }
}

 

 

1
TeodorStefanovPld avatar TeodorStefanovPld 1274 Точки

от всички решения тук само @VasilKotsev се е сетил къде е истината,тея цикли проверки дето някои сте ги въртяли са ужас...

datetime или дори в случая timespan са наи-удобното решение.

0
vasildiavolo avatar vasildiavolo 12 Точки

Колега, идеята е да ползваме проверки, които да разберем като хората, а не материал, който не сме взели. Затова и по-правилното е да ползваме точно тях, а не DateTime. Никой не спори кое е по-удобното, но не се търси по-удобно, а спрямо материала. То за някоя от другите задачи също вероятно има елементарно решение, както switch-а за конвертора на валути/мерни единици, ама не сме го взели, така че се борим с взетото като материал. Дори в подсказката на задачата е описано да се правят проверки.

И за да не е само офтопик, ето и моето решение, което даде 100/100 и смятам, че е първо елементарно, второ е направено само с изучения до тук материал.


            double inHour = double.Parse(Console.ReadLine());
            double inMinutes = double.Parse(Console.ReadLine());
            double hours = inHour;
            double minutes = inMinutes + 15;


            if (hours <= 22 && minutes >= 60)
            { hours += 1;
               minutes = minutes - 60; }
            else if (hours >= 23 && minutes >= 60)
            { hours = hours - hours;
                minutes = minutes - 60; }
           

            Console.WriteLine(hours + ":" + minutes.ToString("00"));

0
22/01/2018 13:29:25
TeodorStefanovPld avatar TeodorStefanovPld 1274 Точки

Първо това не са цикли а логически проверки :D второ на лекцията 100% са споменали и datetime timespan и тн. 3то ако чакате да се научите само от лекции успех иска се адски много ровене и четене сами. Затова от самото начало се повтаря,че английския е задължителен.

И последно имаш начин по който да направиш нещата бързо и лесно и друг при който може да изгърмиш някоя от проверките. Познаи кои е правилния начин?

 

0
22/01/2018 15:34:42
ivanrk avatar ivanrk 68 Точки

Ето едно примерно решение: https://pastebin.com/cyG3ycCT

За водеща нула може да използваш {1:00} или {1:D2}

1
petarstoyanov98 avatar petarstoyanov98 47 Точки

Заповядай още едно решение: https://pastebin.com/qQH5yGXK

Надявам се да помогне. :)

0
Miroslav_Kisov avatar Miroslav_Kisov 60 Точки

Моя съвет е веднага след като въведеш часовете и минутите да добавиш въпросните 15 сек. и след това да се опиташ да си направиш алгоритъма. Виж ми кода и питай ако имаш въпроси? https://pastebin.com/vW4RRiMp.

1
ioannah avatar ioannah 18 Точки

 Благодаря на всички за помощта  laughlaugh

1
desislava777 avatar desislava777 165 Точки

Ето още едно кратко решение: https://pastebin.com/2KxrXxq4

1
shahonov avatar shahonov 3 Точки

Ето още едно решение.

https://dotnetfiddle.net/FVFH1J

По-дълго е , но е логически и алгоритмично по-добре построено. 

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