나는 지난 몇 달 동안 첫날과 마지막 날에 얻을 수있는 쉬운 하나 또는 두 개의 라이너를 생각할 수 없습니다.
설문 조사 웹 앱을 LINQ로 수정하고 있으며 새로운 요구 사항을 압박했습니다.
설문 조사에는 이전 달의 모든 서비스 요청이 포함되어야합니다. 따라서 4 월 15 일이면 모든 Marches 요청 ID가 필요합니다.
var RequestIds = (from r in rdc.request
where r.dteCreated >= LastMonthsFirstDate &&
r.dteCreated <= LastMonthsLastDate
select r.intRequestId);
나는 스위치없이 날짜를 쉽게 생각할 수 없습니다. 내가 장님이고 그것을하는 내부 방법을 간과하지 않는 한.
답변
var today = DateTime.Today;
var month = new DateTime(today.Year, today.Month, 1);
var first = month.AddMonths(-1);
var last = month.AddDays(-1);
실제로 한두 줄이 필요한 경우 인라인하십시오.
답변
내가 과거에 이것을 한 방식은 이달의 첫날을 먼저 얻는 것입니다
dFirstDayOfThisMonth = DateTime.Today.AddDays( - ( DateTime.Today.Day - 1 ) );
그런 다음 하루를 빼면 지난 달이 끝납니다.
dLastDayOfLastMonth = dFirstDayOfThisMonth.AddDays (-1);
그런 다음 한 달을 빼서 이전 달의 첫날을 얻습니다.
dFirstDayOfLastMonth = dFirstDayOfThisMonth.AddMonths(-1);
답변
Fluent DateTime 사용 https://github.com/FluentDateTime/FluentDateTime
var lastMonth = 1.Months().Ago().Date;
var firstDayOfMonth = lastMonth.FirstDayOfMonth();
var lastDayOfMonth = lastMonth.LastDayOfMonth();
답변
DateTime LastMonthLastDate = DateTime.Today.AddDays(0 - DateTime.Today.Day);
DateTime LastMonthFirstDate = LastMonthLastDate.AddDays(1 - LastMonthLastDate.Day);
답변
나는이 간단한 원 라이너를 사용합니다 :
public static DateTime GetLastDayOfPreviousMonth(this DateTime date)
{
return date.AddDays(-date.Day);
}
시간이 유지된다는 점에 유의하십시오.
답변
확장 방법을 사용하는 접근법 :
class Program
{
static void Main(string[] args)
{
DateTime t = DateTime.Now;
DateTime p = t.PreviousMonthFirstDay();
Console.WriteLine( p.ToShortDateString() );
p = t.PreviousMonthLastDay();
Console.WriteLine( p.ToShortDateString() );
Console.ReadKey();
}
}
public static class Helpers
{
public static DateTime PreviousMonthFirstDay( this DateTime currentDate )
{
DateTime d = currentDate.PreviousMonthLastDay();
return new DateTime( d.Year, d.Month, 1 );
}
public static DateTime PreviousMonthLastDay( this DateTime currentDate )
{
return new DateTime( currentDate.Year, currentDate.Month, 1 ).AddDays( -1 );
}
}
영감을 얻은 DateTime 확장 프로그램에 대해서는 http://www.codeplex.com/fluentdatetime 링크를
참조하십시오 .
답변
전자 상거래의 표준 사용 사례는 신용 카드 만료일 (MM / yy)입니다. 하루 대신 1 초를 뺍니다. 그렇지 않으면 카드는 만료 월의 마지막 날 전체에 만료 된 것으로 나타납니다.
DateTime expiration = DateTime.Parse("07/2013");
DateTime endOfTheMonthExpiration = new DateTime(
expiration.Year, expiration.Month, 1).AddMonths(1).AddSeconds(-1);