Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.85/13: Рейтинг темы: голосов - 13, средняя оценка - 4.85
20 / 20 / 6
Регистрация: 18.07.2014
Сообщений: 73

Флаги при вычислении текущего дня недели

22.02.2015, 13:47. Показов 2577. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем доброго времени суток, ребята помогите плиз, а то не соображу чего то как используя флаги организовать следующую проверку %) Пользователю предоставляется выбор из 7 дней недели из которых он может выбрать любой день, несколько любых дней или ни одного вообще... в эти дни скажем так задача "не должна выполнятся" соответственно сделал
C#
1
2
3
4
5
6
7
8
9
10
11
        [Flags] 
        public enum Days
        {
            Sunday = 0x01,
            Monday = 0x02,
            Tuesday = 0x04,
            Wednesday = 0x08,
            Thursday = 0x10,
            Friday = 0x20,
            Saturday = 0x40,
        }
ну и есть что то типо такого
C#
1
2
3
Set_Deys_No_Test = Set_Deys_No_Test | Days.Sunday;
 
Set_Deys_No_Test = Set_Deys_No_Test -= Days.Sunday;
А вот как теперь используя DateTime.Now.DayOfWeek проверить выбран ли сегодняшний день пользователем или нет.
Т.е. необходимо проверить содержится ли сегодняшний день во флагах Set_Deys_No_Test.
Возможно не в том направлении смотрю, буду рад любым идеям, кускам кодам и т.д. для реализации сего "чуда"
Всем заранее спасибо!
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
22.02.2015, 13:47
Ответы с готовыми решениями:

Определение сегодняшнего дня недели по дню недели первого числа текущего месяца
С клавиатуры вводится дата сегодняшнего дня. Разработать и реализовать алгоритм, выводящий дату завтрашнего дня. (Обратите внимание, что...

Получить номер дня недели, который был за некоторое число дней до текущего дня
Здравствуйте, требуется помощь с заданием: В ячейке В2 получить дату текущего дня, в ячейке В4 — номер дня недели (понедельник — 1, вторник...

Вывести название текущего дня недели
Помогите реализовать программу, вот задача: Вывести название текущего дня недели

4
40 / 40 / 13
Регистрация: 09.07.2014
Сообщений: 116
22.02.2015, 13:57
Ну как минимум можно сравнить названия, а не биты.

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
[Flags]
    public enum Days
    {
        Sunday = 0x01 ,
        Monday = 0x02 ,
        Tuesday = 0x04 ,
        Wednesday = 0x08 ,
        Thursday = 0x10 ,
        Friday = 0x20 ,
        Saturday = 0x40 ,
    }
 
    class Program
    {
        static void Main(string[] args)
        {
            DateTime today = DateTime.Now;
 
            Console.WriteLine( Days.Sunday.ToString() == today.DayOfWeek.ToString() ? "Дни совпадают" : "Неправильный день" );
            Console.ReadLine();
        }
    }
0
20 / 20 / 6
Регистрация: 18.07.2014
Сообщений: 73
22.02.2015, 14:06  [ТС]
Спасибо.. это понятно, если день один, я возможно так и поступил бы (хотя не факт, могут быть проблемы с локалем), а если скажем пользователь выбрал понедельник, пятница, воскресенье то такой способ уже не подходит, хотелось бы одной проверкой обойтись так как Set_Deys_No_Test может выглядеть и так
C#
1
Set_Deys_No_Test =Days.Friday | Days.Saturday | Days.Tuesday;
0
Эксперт .NETАвтор FAQ
 Аватар для Storm23
10427 / 5157 / 1825
Регистрация: 11.01.2015
Сообщений: 6,226
Записей в блоге: 34
22.02.2015, 14:18
Лучший ответ Сообщение было отмечено Coroners как решение

Решение

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
using System;
 
namespace ConsoleApplication168
{
    class Program
    {
        static void Main(string[] args)
        {
            var today = (Days)(1 << (int)DateTime.Now.DayOfWeek);
 
            var days = Days.Sunday | Days.Monday | Days.Thursday;
 
            if (days.HasFlag(today))
                Console.WriteLine("Today is our day!");
        }
    }
 
    [Flags]
    public enum Days: byte
    {
        None = 0x0,
        Sunday = 0x01,
        Monday = 0x02,
        Tuesday = 0x04,
        Wednesday = 0x08,
        Thursday = 0x10,
        Friday = 0x20,
        Saturday = 0x40,
        Everyday = 0xff
    }
}
2
20 / 20 / 6
Регистрация: 18.07.2014
Сообщений: 73
22.02.2015, 14:59  [ТС]
Storm23 спасибо огромное, благодаря вам увидел свою ошибку на которой встал по своей невнимательности, писал примерно такой же код который вы дали в ответе только перемудрил "немного" и уже замылиным глазом....
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
22.02.2015, 14:59
Помогаю со студенческими работами здесь

Написать программу, которая запрашивает у пользователя номер дня недели, затем выводит название дня недели
Написать программу, которая запрашивает у пользователя номер дня недели, затем выводит название дня недели или сообщение об ошибке, если...

Найти номер дня недели К-го дня года, если в этом году 1 января было днем недели с номером N
Дни недели пронумерованы следующим образом: 0 - воскресенье, 1 - понедельник, 2 - вторник, ..., 6 - суббота. Даны целые числа K в...

Написать программу, которая по номеру дня недели (целому числу от 1 до 7) выдает в качестве результата название дня недели
!!!!!

Программа вычисления текущего дня вашей жизни, с дня рождения
3. Написать программу вычисления текущего дня вашей жизни, с дня вашего рождения. Дату рождения выбирать с помощью компонента...

Отобразить соответствующий день недели в соответствии с номером введенного дня недели
Отобразите соответствующий день недели в соответствии с номером введенного дня недели. Если такого дня нет false


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Functional First Web Framework Suave
DevAlt 30.03.2026
Sauve. IO Апнулись до NET10. Из зависимостей один пакет, работает одинаково хорошо как в режиме проекта так и в интерактивном режиме. из сложностей - чисто функциональный подход. Решил. . .
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2. Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники". В. . .
Настройка движения справочника по регистру сведений
Maks 29.03.2026
Решение ниже реализовано на примере нетипового справочника "ТарифыМобильнойСвязи" разработанного в конфигурации КА2, с целью учета корпоративной мобильной связи в коммерческом предприятии. . . .
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru