Назад
Создание прибыльного бизнеспроекта на базе сайта

SEO + ASP.NET 4.0 + БИЗНЕСМОДЕЛЬ = ПРИБЫЛЬНЫЙ САЙТ

Инструмент быстрого построения прибыльного онлайн бизнеса своими силами без капиталовложений за 4 месяца все подробности на SEO + ASP.NET 4.0.

Подписка на рассылку

МАГИЯ C#!

Создание вебсайта с формой автоматического приема онлайн платежей по WebMoney!
Ваше имя
Ваш e-mail
Уроки по ASP.NET c# ADO.NET
     

18 видеоуроков
более 5 часов
по созданию сайта,
выполняющего
продажи ваших продуктов (физических/электронных) на полном автомате с личным оповещением на e-mail, а также ...
DVD-курс по C#, .NET

3 часть. Введение в ASP.NET. WebServices Профессиональная подготовка разработчика по языку C# на платформе .NET

asp.net webservices dvd c# gridview Гудок курс Более 65 подробных видео уроков по теоретическим основам технологии сайтостроения ASP.NET и процессу создания и использованию вебсервисов.

DVD-курс по C#, .NET

2А часть. XML/TXT в аспекте ADO.NET Профессиональная подготовка разработчика по языку C# на платформе .NET

xml txt dvd c# ADO ADO.NET Гудок курс 70 подробных видео уроков по работе с форматами xml, txt, по работе с файлами и директориями. Разработка высокоорганизованных свойств для значительного сокращения объема исходного кода и облегчения дальнейшей модификации и многое-многое другое...

DVD-курс по C#, .NET

1 часть. Windows Forms Профессиональная подготовка разработчика по языку C# на платформе .NET

Профессиональная подготовка на c# А. Гудок

185 подробнейших уроков (70 часов) лекций в формате видеоуроков по теории языка c# и платформы .NET. Практическое закрепление теоретического материала на примере создания Windows Forms - приложения видеоигры "Tanks"

DVD-курс по C#, .NET

2 часть. ADO.NET/SQL Профессиональная подготовка разработчика по языку C# на платформе .NET

Профессиональная подготовка на c# А. Гудок ADO.NET sql

165 подробных видео уроков по созданию приложений распределенных баз данных на примере разработки проектов с использований технологий ADO.NET (Connected model, Disconnected model, Typed DataSet, ...)


Я записываю курсы!
  Курс валют

НБУ курс евро






Работа в c# с DateTime - получение набора дат в текущем году



Реализовывая как то механизм получения всех дат для заданного дня недели определенного года для выстраивания их на виртуальном календаре при сравнении со сторонним списком дат, наткнулся на очень интересный (как по мне) вариант реализации схожей задачи (немного переделал для своих нужд):

class DataWorker
{
   public IEnumerable GetAllDates(int year, 
      DayOfWeek dayOfWeek)
   {
	  DateTime date;

      for (int i = 1; i <= 12; i++)
      {
         date = new DateTime(year, i, 1);
            
         var dates = Enumerable.Range
         (
             1,DateTime.DaysInMonth(date.Year,date.Month)).
             Select(tempDay => new DateTime(
                 date.Year, date.Month, tempDay)
         );
            
         foreach (var item in dates)
             if (item.DayOfWeek == dayOfWeek)
                 yield return item;
      }
   }
}

Для получения всех дат, соответствующих определенному (к примеру среда) дню недели в каждом месяце текущего года вызываем метод GetAllDates:

var dates = wdt.GetAllDates(2010, DayOfWeek.Wednesday);

Получив список, реализовывающий интерфейс IEnumerable, не составляет особого труда перебрать все его элементы. Ну к примеру хотя бы так:

foreach (var dat in dates)
   Console.WriteLine(dat.ToString());

Для тех, кто впервые сталкивается с лямбда выражениями скажу, что хотя далеко не все программеры применяют их для подобных целей (и не только), все таки полезно познакомиться с их принципом работы и приемами составления.

Обещаю в скором времени познакомить вас с синтаксисом лямбда выражений, а пока для начала метод GetAllDates перепишем с более глубоким использованием лямбда выражений (пример кода тоже не мой, но очень уж понравился изящностью исполнения):

public IEnumerable GetAllDates(int year, 
    DayOfWeek weekDay)
{
    return Enumerable.Range(1, 12)
        .Select(month => new DateTime(year, month, 1))
        .Select(date => Enumerable.Range(
            1, DateTime.DaysInMonth(date.Year, date.Month))
        .Select(day => new DateTime(date.Year, date.Month, day))
        .Where(thisDay => thisDay.DayOfWeek == weekDay))
        .SelectMany(d => d);
}

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

var dates = wdt.GetAllDates(2010, DayOfWeek.Wednesday);

Тут же попутно, если требуется получить все месяцы в году:

System.Globalization.DateTimeFormatInfo dtformatInfo = 
    new System.Globalization.DateTimeFormatInfo();

for(int i = 1; i <= 12; i++)
	Console.WriteLine(dtformatInfo.GetMonthName(i));

Если требуется проверить содержимое объекта на реальность даты, то:

//создается на случай успешного приведения в методе TryParse
DateTime errorvalue = new DateTime();

Console.WriteLine(DateTime.TryParse(
    string.Format("{0} {1} {2}", DateTime.Now.Year, 
    DateTime.Now.Month, DateTime.Now.Day), out errorvalue));

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



Больше информации читайте по теме:



Оценить статью:

Оценивая статью, Вы подсказываете нам насколько данная информация стала полезной именно для Вас. Мы ожидаем, прежде всего, оценку доступности материала для понимания и простоты его изложения. Дополнительные комментари, вопросы, дополнения и замечания Вы можете указать на странице От Вас

Частичное, или полное копирование материала данной статьи возможно лишь при размещении ссылки на данную страницу.


            
        




Имя:  


Текст комментариев (не больше 600 знаков):  
введите не более 600 знаков



Введите символы с картинки:
Капча имеет "срок годности". Поэтому, если необходимо обновите страницу.



Сантехник срочно
c# курс Гудок   курс по ASP.NET Гудок   курс по ADO.NET Гудок   курс по XML txt Гудок   курс по рефлексии и многопоточности Гудок