День недели и час дня в операторе if C#

Я хочу что-то сделать, если день и время дня равны истине в выражении if. У меня есть часть дня, просто не могу понять, какая часть времени. Допустим, я хочу, чтобы время было 9 утра.

Вот что у меня так далеко

var dt_check_monday = DateTime.Now.DayOfWeek;
if (dt_check_monday == DayOfWeek.Monday && time_now = DateTime.Now.Hour==9)
{
//do something
}

Я не могу использовать это, я получаю ошибку:

Оператор '&&' нельзя применять к операндам типа 'bool' и 'System.TimeSpan'

Спасибо за любую помощь заранее.

4 ответа

Решение

Я думаю time_now имеет TimeSpan тип данных. Так что вы можете попробовать это

if (dt_check_monday == DayOfWeek.Monday && time_now.Hours == 9)
 {
    //do something
 }

Вы должны просто сделать это:

if (DateTime.Now.DayOfWeek == DayOfWeek.Monday && DateTime.Now.Hour == 9)
{

}

Ваш код имеет присваивание необъявленной переменной time_now и вы делаете назначение time_now = что заставляет его терпеть неудачу.

Вы должны также рассмотреть вопрос о пересмотре того, как вы называете свои переменные, dt_check_monday абсолютно ничего не значит, если значение внутри него DayOfWeek.Wednesdayрассмотреть вопрос об изменении его на что-то вроде dt_currentDayOfWeek но это уже существует в форме DateTime.Now.DayOfWeek вот почему я удалил переменную из моего примера.

= это назначение. == это "равно"

Ваш второй = должен быть ==

Если вы хотите сохранить time_now для последующего использования, вы должны заключить присвоение в оператор if в паратезы.

var dt_check_monday = DateTime.Now.DayOfWeek;
if (dt_check_monday == DayOfWeek.Monday && (time_now = DateTime.Now.Hour) == 9)
{
    //do something
}
Другие вопросы по тегам