Промежуток времени

russya

Client
Регистрация
08.07.2014
Сообщения
745
Благодарностей
78
Баллы
28
Всем привет! подскажите по сравнению времени.
Есть переменная vrema_ot: 12:00
Есть переменная vrema_do: 18:00
Есть переменная vrema: 13:50
Нужно проверить входит ли переменная vrema в промежуток vrema_ot до vrema_do
Как это сделать на c#?
 

Deisler

Client
Регистрация
26.10.2019
Сообщения
486
Благодарностей
191
Баллы
43
Всем привет! подскажите по сравнению времени.
Есть переменная vrema_ot: 12:00
Есть переменная vrema_do: 18:00
Есть переменная vrema: 13:50
Нужно проверить входит ли переменная vrema в промежуток vrema_ot до vrema_do
Как это сделать на c#?
Если временные интервалы всегда в рамках одного дня, то убираешь : и сравниваешь числа что 1350>1200 и 1350<1800
Если временной интервал переваливает на новые сутки, тогда делаешь через мануал из сообщения выше
 
  • Спасибо
Реакции: russya

BAZAg

Client
Регистрация
08.11.2015
Сообщения
1 794
Благодарностей
2 466
Баллы
113
Всем привет! подскажите по сравнению времени.
Есть переменная vrema_ot: 12:00
Есть переменная vrema_do: 18:00
Есть переменная vrema: 13:50
Нужно проверить входит ли переменная vrema в промежуток vrema_ot до vrema_do
Как это сделать на c#?
95096

C#:
string vrema_ot = "12:00";
string vrema_do = "18:00";
string vrema = "13:50";

Func<string, string, string, bool> CheckTime =(t1, t2, t3) =>{
    int[] start = t1.Split(':').Select(x=>int.Parse(x)).ToArray();
    int[] end = t2.Split(':').Select(x=>int.Parse(x)).ToArray();
    int[] time = t3.Split(':').Select(x=>int.Parse(x)).ToArray();
    
    var now =  DateTime.Now;
    var time_start = new DateTime(now.Year, now.Month, now.Day, start[0], start[1],0);
    var time_end = new DateTime(now.Year, now.Month, now.Day, end[0], end[1],0);
    var time_now = new DateTime(now.Year, now.Month, now.Day, time[0], time[1],0);
    return  time_now > time_start && time_now < time_end;
};

bool check = CheckTime(vrema_ot, vrema_do, vrema);
project.SendInfoToLog(string.Format("{0} > {1} && {0} < {2} == {3}", vrema, vrema_ot, vrema_do, check));

 vrema = "19:50";
check = CheckTime(vrema_ot, vrema_do, vrema);
project.SendInfoToLog(string.Format("{0} > {1} && {0} < {2} == {3}", vrema, vrema_ot, vrema_do, check));

 vrema = "12:00";
check = CheckTime(vrema_ot, vrema_do, vrema);
project.SendInfoToLog(string.Format("{0} > {1} && {0} < {2} == {3}", vrema, vrema_ot, vrema_do, check));

 vrema = "17:59";
check = CheckTime(vrema_ot, vrema_do, vrema);
project.SendInfoToLog(string.Format("{0} > {1} && {0} < {2} == {3}", vrema, vrema_ot, vrema_do, check));

return check;
 

material

Client
Регистрация
23.03.2021
Сообщения
329
Благодарностей
124
Баллы
43
Посмотреть вложение 95096
C#:
string vrema_ot = "12:00";
string vrema_do = "18:00";
string vrema = "13:50";

Func<string, string, string, bool> CheckTime =(t1, t2, t3) =>{
    int[] start = t1.Split(':').Select(x=>int.Parse(x)).ToArray();
    int[] end = t2.Split(':').Select(x=>int.Parse(x)).ToArray();
    int[] time = t3.Split(':').Select(x=>int.Parse(x)).ToArray();
   
    var now =  DateTime.Now;
    var time_start = new DateTime(now.Year, now.Month, now.Day, start[0], start[1],0);
    var time_end = new DateTime(now.Year, now.Month, now.Day, end[0], end[1],0);
    var time_now = new DateTime(now.Year, now.Month, now.Day, time[0], time[1],0);
    return  time_now > time_start && time_now < time_end;
};

bool check = CheckTime(vrema_ot, vrema_do, vrema);
project.SendInfoToLog(string.Format("{0} > {1} && {0} < {2} == {3}", vrema, vrema_ot, vrema_do, check));

vrema = "19:50";
check = CheckTime(vrema_ot, vrema_do, vrema);
project.SendInfoToLog(string.Format("{0} > {1} && {0} < {2} == {3}", vrema, vrema_ot, vrema_do, check));

vrema = "12:00";
check = CheckTime(vrema_ot, vrema_do, vrema);
project.SendInfoToLog(string.Format("{0} > {1} && {0} < {2} == {3}", vrema, vrema_ot, vrema_do, check));

vrema = "17:59";
check = CheckTime(vrema_ot, vrema_do, vrema);
project.SendInfoToLog(string.Format("{0} > {1} && {0} < {2} == {3}", vrema, vrema_ot, vrema_do, check));

return check;
Доброго дня. Помогите пожалуйста кто-нибудь с данным кодом, чтобы по итогу, если время соответствует интервалу - выходило по зеленой ветке, а если время не соответствует интервалу - выходило по красной ветке.
 

material

Client
Регистрация
23.03.2021
Сообщения
329
Благодарностей
124
Баллы
43
Доброго дня. Помогите пожалуйста кто-нибудь с данным кодом, чтобы по итогу, если время соответствует интервалу - выходило по зеленой ветке, а если время не соответствует интервалу - выходило по красной ветке.
Не сильно верил в себя, но по итогу получилось. Оставлю в теме, может кому-то пригодиться:
C#:
string vrema_ot = "12:00";
string vrema_do = "18:00";
string vrema = "12:50";

Func<string, string, string, bool> CheckTime =(t1, t2, t3) =>{
    int[] start = t1.Split(':').Select(x=>int.Parse(x)).ToArray();
    int[] end = t2.Split(':').Select(x=>int.Parse(x)).ToArray();
    int[] time = t3.Split(':').Select(x=>int.Parse(x)).ToArray();
    
    var now =  DateTime.Now;
    var time_start = new DateTime(now.Year, now.Month, now.Day, start[0], start[1],0);
    var time_end = new DateTime(now.Year, now.Month, now.Day, end[0], end[1],0);
    var time_now = new DateTime(now.Year, now.Month, now.Day, time[0], time[1],0);
    return  time_now > time_start && time_now < time_end;
};

bool check = CheckTime(vrema_ot, vrema_do, vrema);

if (check==true) return check;
else throw new Exception();
 
  • Спасибо
Реакции: BAZAg

Кто просматривает тему: (Всего: 2, Пользователи: 0, Гости: 2)