Допустим, у нас есть два периода оплаты для нашего мобильного звонка, если мы звоним между 0-12, тогда скорость звонка составляет 1 $/мин. &, если мы звоним между 12-24, тогда ставка составляет 2 $/мин. Вызов может начинаться в любое время & длится любой продолжительностью. Мне нужно рассчитать счет за продолжительность звонка. Мне сложно работать с типом datetime. Также мне нужен лучший алгоритм для расчета счета. Я пробую что-то вроде этого:C# Консольное приложение, как рассчитать Mobile Bill на любой срок?
DateTime StartTime, EndTime;
decimal Bill = 0;
decimal RemainingDuration;
StartTime = DateTime.Now;
EndTime = DateTime.Now.AddHours(2.5);
var Duration = (EndTime.ToString("H:mm") - StartTime.ToString("H:mm"));
if (StartTime.Hour > 0 && StartTime.Hour < 12)
{
//var RemainingTime = 12.00 - StartTime;
//if (Duration < RemainingTime)
//{
// Bill = (Duration * 60) * 1;
// Console.WriteLine(Bill);
//}
//else
//{
// RemainingDuration = Duration - RemainingTime;
// Bill = ((RemainingTime * 60) * 1) + ((RemainingDuration * 60) * 2);
// Console.WriteLine(Bill);
//}
}
else if (StartTime.Hour > 12 && StartTime.Hour < 24)
{
//var RemainingTime = 24.00 - StartTime.Hour;
//if (Duration < RemainingTime)
//{
// Bill = (Duration * 60) * 2;
// Console.WriteLine(Bill);
//}
//else
//{
// RemainingDuration = Duration - RemainingTime;
// Bill = ((RemainingTime * 60) * 2) + ((RemainingDuration * 60) * 1);
// Console.WriteLine(Bill);
//}
}
Console.ReadLine();
Есть ошибки при совпадении типа miss. ошибки здесь не являются моей главной задачей, я написал этот код, предполагая, что продолжительность звонка может быть не более 24 часов. Мне нужно написать его неограниченно. Также получение трудного времени для преобразования типов. Образец кода действительно поможет. спасибо
** Прочитать сообщение об ошибке **. – SLaks
Вы не можете использовать var – deKajoo
Как вы думаете, это означает вычесть две строки. – SLaks