Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият.
Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание.
Използваме бисквитки и за измерване на маркетинговите ни усилия.
var hours = int.Parse(Console.ReadLine());
var minutes = int.Parse(Console.ReadLine());
hours = minutes / 60;
minutes = minutes % 60;
if (minutes < 10)
{
Console.WriteLine(hours + ":0" + minutes + 15);
}
else
{
Console.WriteLine(hours + ":" + minutes + 15);
}
Казвайки hours = minutes / 60 презаписваш стойността на hours. При положение, че получаваш стойност за тази променлива от входа, не мисля, че това е, което искаш да направиш. Може би искаш да добавиш още часове? В такъв случай може да ползваш +=, вместо обикновено присвояване с =.
Така написано можеш да надхвърлиш 59 минути при печатането и да отпечаташ 67 минути, примерно, което е грешен резултат. По-добре първо прибави минутите, провери дали се променя часа след прибавените минути и тогава печатай.
Не си спомням, кога се учеше класа TimeSpan, но с него можеш да решиш задачата буквално с 2 - 3 реда.
http://www.dotnetperls.com/timespan
Можеш спокойно да принтираш резултата по следния начин:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Time_SUm
{
class Program
{
static void Main(string[] args)
{
var hours = int.Parse(Console.ReadLine());
var minutes = int.Parse(Console.ReadLine());
minutes = minutes + 15;
if (minutes < 10)
{
Console.WriteLine(hours + ":0" + minutes);
}
else if (minutes >=60)
{
hours = hours + minutes / 60;
Console.WriteLine(hours + minutes / 60 + ":00");
}
else if (hours >23)
{
hours %= 24;
Console.WriteLine("0" + (hours %24) + ":" + minutes);
}
}
}
}
Съжалявам, че пиша не знам си кой по ред коментар, но така и не стигам до правилното решение . Ще се радвам, ако някой ми даде пълното решение на задачата. Отделих достатъчно време и явно пропускам нещо.... всеки път. Благодаря предварително
{
var hour = int.Parse(Console.ReadLine());
var minutes = int.Parse(Console.ReadLine());
minutes = minutes + 15;
if ( minutes >= 60 ) {
hour = hour + 1 ;
minutes = minutes - 60;
if (hour >= 24)
hour = hour - 24;
}
Console.WriteLine("{0}:{01:00}", hour, minutes );
var hours = int.Parse(Console.ReadLine());
var minutes = int.Parse(Console.ReadLine());
DateTime time = new DateTime();
time = time.AddHours(hours);
time = time.AddMinutes(minutes + 15);
Console.WriteLine(time.ToString("H:mm"));
//Console.WriteLine("{0:H:mm}", time);
Понеже още съм стигнал до там, мога само да предполагам какво трябва да прави задачата - да прибавя по 15 минути към произволно зададен час. Ако е така ти предлагам следното решение:
Успех в начинанието! Btw може да имам грешки, понеже го пиша директно тук, без да го тествам във Visual Studio.
решението на H.Stoyanov е вярно но за да го приеме в джъджа направих малка промяна
using System;
class Program
{
static void Main(string[] args)
{
var hours = int.Parse(Console.ReadLine());
var minutes = int.Parse(Console.ReadLine());
minutes += 15; //Тук може да бъде -> minutes = minutes + 15; (което е същия израз)
if (minutes >= 60)
{
minutes -= 60; //Отново може да бъде -> minutes = minutes - 60;
hours += 1; //Вече е банално да обяснявам пак
if (minutes <10)
{
if (hours==24)
{
Console.WriteLine("0:0" + minutes);
}
else
{
Console.WriteLine(hours + ":0" + minutes);
}
}
else
{
if (hours==24)
{
Console.WriteLine("0:" + minutes);
}
else
{
Console.WriteLine(hours + ":" + minutes);
}
}
}
else
{
if (minutes < 10)
{
if (hours==24)
{
Console.WriteLine("0:0" + minutes);
}
else
{
Console.WriteLine(hours + ":0" + minutes);
}
}
else
{
if (hours==24)
{
Console.WriteLine("0:" + minutes);
}
else
{
Console.WriteLine(hours + ":" + minutes);
}
}
}
}
}
Хвърли един поглед и на моето решение, използвам по-малко проверки
http://pastebin.com/mtjM92hs
Моето решение, правилно е, но може би е малко завъртяно, но така или иначе не се сещам за друго по-лесно
using System;
class MetricConverter
{
static void Main()
{
int hour = int.Parse(Console.ReadLine());
int minutes = int.Parse(Console.ReadLine());
minutes += 15;
if (minutes > 59)
{
minutes %= 60;
hour += 1;
}
if (hour > 23)
{
hour %= 24;
}
Console.WriteLine($"{hour}:{minutes:D2}");
}
}
https://pastebin.com/HWfW9QGV 5 реда код,не се страхувай да пробваш нови неща. С# дава много възможности...
else if (sumhours >= 24)
{
sumhours = minutes / 60;
sumhours = sumhours %24 + minutes;
Console.WriteLine("0" + sumhours + ":" + minutes);
}
}
Оправих проблемът с минутите. Сега искам да огранича часовете до 24:00. Опитах различни начини, но не се получава.