C\#DateTime 으로 선택 할 수 있 는 날짜 범 위 를 미리 설정 합 니 다(예 를 들 어 이번 년도,이번 분기,이번 달 등)

본 논문 의 사례 는 C\#DateTime 에서 선택 할 수 있 는 날짜 범위 와 관련 된 코드 를 공유 하고 이번 년도,이번 분기,이 달 등 을 선택 하여 참고 할 수 있 습 니 다.구체 적 인 내용 은 다음 과 같 습 니 다.
효과:

모두 가 보고 서 를 작성 하거나 조회 할 때 사용자 에 게 선택 할 수 있 는 날짜 범 위 를 미리 설정 합 니 다(위의 그림 참조).
예 를 들 어 이번 년도 매출 액,이번 분기 이윤,이번 달 에 고객 이 새로 증가 할 경우
C\#내 장 된 DateTime 은 기본적으로 이러한 기능 을 실현 할 수 있 습 니 다.DateTime 을 교묘 하 게 사용 하면 이런 일 을 처리 하 는 것 이 훨씬 쉬 워 집 니 다.

        
        //  
        DateTime.Now.Date.ToShortDateString();
        //  ,         
        DateTime.Now.AddDays(-1).ToShortDateString();
        //  ,  ,  
        DateTime.Now.AddDays(1).ToShortDateString();

        //  (                    ,                   ,                    
        DateTime.Now.AddDays(Convert.ToDouble((0 - Convert.ToInt16(DateTime.Now.DayOfWeek)))).ToShortDateString();
        DateTime.Now.AddDays(Convert.ToDouble((6 - Convert.ToInt16(DateTime.Now.DayOfWeek)))).ToShortDateString();
        //       ,                   
        //  DayOfWeek          ,                ,       switch        ,                
        string[] Day = new string[] { "   ", "   ", "   ", "   ", "   ", "   ", "   " };
        Day[Convert.ToInt16(DateTime.Now.DayOfWeek)];

        //  ,  ,    7 ,         7 ,      
        DateTime.Now.AddDays(Convert.ToDouble((0 - Convert.ToInt16(DateTime.Now.DayOfWeek))) - 7).ToShortDateString();
        DateTime.Now.AddDays(Convert.ToDouble((6 - Convert.ToInt16(DateTime.Now.DayOfWeek))) - 7).ToShortDateString();
        //  
        DateTime.Now.AddDays(Convert.ToDouble((0 - Convert.ToInt16(DateTime.Now.DayOfWeek))) + 7).ToShortDateString();
        DateTime.Now.AddDays(Convert.ToDouble((6 - Convert.ToInt16(DateTime.Now.DayOfWeek))) + 7).ToShortDateString();
        //  ,                1 ,               。      
        //     
        DateTime.Now.Year.ToString() + DateTime.Now.Month.ToString() + "1"; //   
        DateTime.Parse(DateTime.Now.Year.ToString() + DateTime.Now.Month.ToString() + "1").AddMonths(1).AddDays(-1).ToShortDateString();//    

        //  C# ToString         
        DateTime.Now.ToString("yyyy-MM-01");
        DateTime.Parse(DateTime.Now.ToString("yyyy-MM-01")).AddMonths(1).AddDays(-1).ToShortDateString();

        //   ,      
        DateTime.Parse(DateTime.Now.ToString("yyyy-MM-01")).AddMonths(-1).ToShortDateString();
        DateTime.Parse(DateTime.Now.ToString("yyyy-MM-01")).AddDays(-1).ToShortDateString();
        //   ,      
        DateTime.Parse(DateTime.Now.ToString("yyyy-MM-01")).AddMonths(1).ToShortDateString();
        DateTime.Parse(DateTime.Now.ToString("yyyy-MM-01")).AddMonths(2).AddDays(-1).ToShortDateString();
        //7  
        DateTime.Now.Date.ToShortDateString();
        DateTime.Now.AddDays(7).ToShortDateString();
        //7  
        DateTime.Now.AddDays(-7).ToShortDateString();
        DateTime.Now.Date.ToShortDateString();

        //   , ToString                           
        DateTime.Parse(DateTime.Now.ToString("yyyy-01-01")).ToShortDateString();
        DateTime.Parse(DateTime.Now.ToString("yyyy-01-01")).AddYears(1).AddDays(-1).ToShortDateString();
        //   ,       
        DateTime.Parse(DateTime.Now.ToString("yyyy-01-01")).AddYears(-1).ToShortDateString();
        DateTime.Parse(DateTime.Now.ToString("yyyy-01-01")).AddDays(-1).ToShortDateString();
        //   
        DateTime.Parse(DateTime.Now.ToString("yyyy-01-01")).AddYears(1).ToShortDateString();
        DateTime.Parse(DateTime.Now.ToString("yyyy-01-01")).AddYears(2).AddDays(-1).ToShortDateString();

        //   ,           ,            。     ,           ,       
        //                 ,                   
        DateTime.Now.AddMonths(0 - ((DateTime.Now.Month - 1) % 3)).ToString("yyyy-MM-01");
        //  ,                   
        DateTime.Parse(DateTime.Now.AddMonths(3 - ((DateTime.Now.Month - 1) % 3)).ToString("yyyy-MM-01")).AddDays(-1).ToShortDateString();
        //   ,        。。。。  
        DateTime.Now.AddMonths(3 - ((DateTime.Now.Month - 1) % 3)).ToString("yyyy-MM-01");
        DateTime.Parse(DateTime.Now.AddMonths(6 - ((DateTime.Now.Month - 1) % 3)).ToString("yyyy-MM-01")).AddDays(-1).ToShortDateString();
        //   
        DateTime.Now.AddMonths(-3 - ((DateTime.Now.Month - 1) % 3)).ToString("yyyy-MM-01");
        DateTime.Parse(DateTime.Now.AddMonths(0 - ((DateTime.Now.Month - 1) % 3)).ToString("yyyy-MM-01")).AddDays(-1).ToShortDateString();
DateTime 비교
로그 요약 에 날 짜 를 비 교 했 습 니 다.로 그 를 발표 하 는 시간 과 현재 날 짜 를 비교 해 야 합 니 다.만약 3 일 안에 발표 된다 면 이 로그 앞 에'새'자 를 추가 하 겠 습 니 다.
나의 이전 알고리즘 은 매우 번 거 로 웠 는데,문자열 을 성형 으로 바 꾼 후에 다시 계산 하 는 것 이 었 다. 
데이트 타임 으로 직접 비교 하고 싶 습 니 다.나 는 먼저 발표 날짜(문자열)를 날짜 형 으로 변환 합 니 다.

/      
   DateTime PubDate=new DateTime();
   // PubDate=item["   "];
   string strPubDate=item["   "].ToString();
    DateTime dt1=new DateTime(DateTime.Parse(strPubDate));
처음에 나 는 바로 위 에 있 는 이 문구 에 3 일 을 넣 었 다.문 구 는 바로 이렇다.
DateTime dt1=new DateTime(int.Parse(strY),int.Parse(strM),(int.Parse(strD)+3),0,0,0,0);
결국,늘 실 수 를 한다.원인 은 어디 에 있 습 니까?
나 는 추적 테스트 를 해서 문제 의 소 재 를 발견 했다.발 표 된 로 그 는 매달 28 일 이후 직접 전환 할 때 3 을 추 가 했 기 때문에 29+3=32,32 는 날짜 형 으로 바 꿀 수 없다.
 그래서 저 는 이 오 류 를 바로 잡 고 비교 할 때 DateTime.Adddays(3)로 이 작업 을 완 성 했 습 니 다.

 //      
   DateTime CurrentDate=new DateTime();
   CurrentDate=DateTime.Now;
   
   if(CurrentDate<DT1.ADDDAYS(3))
   {
    str=str+" ! ";
   }
 
날짜 가 같은 지 비교 하려 면 DateTime.Compare(dt1,dt2)를 사용 하 십시오.
이상 은 본문의 전체 내용 이 므 로 여러분 의 학습 에 도움 이 되 기 를 바 랍 니 다.

좋은 웹페이지 즐겨찾기