Можно так:
DateTime firstDayOfCurrentMonth = DateTime.Today - TimeSpan.FromDays(DateTime.Today.Day - 1)
Для последнего дня можно так:
DateTime firstDayOfNextMonth = DateTime.Today.AddMonths(1) - TimeSpan.FromDays(DateTime.Today.Day - 1)
Но тут есть тонкий момент, связанный с двойным взятием DateTime.Today - это потенциальный, хотя и маловероятный баг, когда результаты обоих функций придутся на разные месяцы. Правильнее написать функцию.
DateTime FirstDayOfMonth(DateTime date)
{
return date.Date - TimeSpan.FromDays(date.Day - 1);
}
...
DateTime firstDayOfCurrentMonth = FirstDayOfMonth(DateTime.Now);
P.S. Баг форума, упорно автоматический вставляется тэг code в начало поста.