Microsoft MVP성태의 닷넷 이야기
TimeSpan 구할 때 시간대를 바꿔도 같은 값이 나오는 것 같습니다. [링크 복사], [링크+제목 복사],
조회: 13812
글쓴 사람
영귤 (lucasyi at naver.com)
홈페이지
첨부 파일
 

            DateTime now = DateTime.Now;

            DateTime endOfYear1 = new DateTime(now.Year, 12, 31, 0, 0, 0);
            DateTime endOfYear2 = new DateTime(now.Year, 12, 31, 0, 0, 0, DateTimeKind.Local);
            DateTime endOfYear3 = new DateTime(now.Year, 12, 31, 0, 0, 0, DateTimeKind.Utc);

            TimeSpan gap1 = endOfYear1 - now;
            TimeSpan gap2 = endOfYear2 - now;
            TimeSpan gap3 = endOfYear3 - now;

            Console.WriteLine("올해의 남은 날짜: " + gap1.TotalSeconds);
            Console.WriteLine("올해의 남은 날짜: " + gap2.TotalSeconds);
            Console.WriteLine("올해의 남은 날짜: " + gap3.TotalSeconds);


c# 8.0 382 페이지의 코드를 약간 바꾸어 보았습니다.

now는 local time 기준이니까,
시간대에 따라서 빼기 결과가 달라야 정상이 아닌가요?








[최초 등록일: ]
[최종 수정일: 8/6/2020]


비밀번호

댓글 작성자
 



2020-08-06 09시49분
이게 DateTime의 Subtract 연산이 TimeZone을 고려한 연산이 아니고, 순수하게 시간 대 시간으로 연산을 하기 때문입니다. 즉, Local 시간대로 0에서 5까지 흐른 시간과, UTC 시간대로 0에서 10까지 흘렀다고 했을 때, 서로 TimeZone에 맞게 변환해서 시간 차를 구하는 것이 아니고, 10에서 5를 빼는 식으로 단순하게 계산하게 되어 있습니다.

따라서, 원하는 결과를 얻으려면 시간대를 같게 맞춰서 연산을 해야 합니다.
정성태

... 31  32  33  34  35  36  37  38  39  40  41  [42]  43  44  45  ...
NoWriterDateCnt.TitleFile(s)
4833안종윤5/18/201718662winform을 Web Browser에 붙일 수 있는지요? [1]
4832guest5/17/201717620c# UDP socket예제 실행방법 [3]
4831guest5/15/201721333WPF .net 3.5에서 TextBox 한글 문제 [3]
4830초보자5/7/201725203프로그램 비정상 종료 메시지 창 없애는 방법 [4]
4829윤현수4/26/201724172System.Text.Encoding 질문 [1]
4828jaem...4/20/201718217시스템 종료시 block 함수 xp 지원가능한 방법 질문 [2]
4827ds4/13/201720273매서드 정의로 이동시 [메타데이터에서]에서 라고 나오는 것은 뭔가요? [1]
4826김솔지4/11/201717379CxImage 문자 출력 [1]
4825플메4/10/201716698덱스트 업로드 하는데 구성요소 서비스에 엑셀이 안뜨네요..ㅜㅜ [1]파일 다운로드1
4824김상경4/9/201716706win7에서 vb6.0을 이용해서 프로그램을 만들었습니다.(제가 만든건 아니고 옆 동료가 만들었습니다.) [1]파일 다운로드1
4823조상현3/28/201717503windows event log 에 대한 정보는 어디서 얻을 수 있을까요? [1]
4822부우3/24/201719816글수정이 안되어 다시올려드립니다ㅠ [12]파일 다운로드2
4821부우3/22/201734733파일이나 어셈블리 중 하나를 로드에러 좀 봐주세요 [9]파일 다운로드1
4820듀이3/20/201718357오차 없이 동시에 명령을 보내게 가능한가요? [2]파일 다운로드1
4819popo3/20/201719604C# sslstream 사용시 Cipher List 설정 [3]
4818부우3/16/201730386DllImport 사용시 진입점을 찾을수 없습니다 [2]
4817yun3/15/201719025서피스프로4의 HYPER-V로 윈도우7을 깔았는데... [1]
4816부우3/15/201720912C++ DLL함수 사용 질문드립니다 [10]
4815김지용3/14/201716974.net core linux 오류 [2]
4814김솔지3/13/201717883인쇄 시 , 출력화면을 이미지 파일로 저장하고 싶습니다. [1]파일 다운로드1
4813spow...3/8/201719793멀티 스레드 환경에서 처리하여야 할 목록을 효율적으로 사용하는 기법 질문 드립니다 [2]
4812popo2/23/201719963.NET Window ClassName 변경 질문 드립니다. [1]
4809힘찬도약2/15/201722914C# 가상 시리얼 [4]
4808이길용2/9/201721352WCF 외부 접속 관련해서 질문드립니다ㅠ [1]
4807헬조선식...2/8/201728800WPF의 속도에 대해서 궁금합니다. [3]
4803헬조선식...2/7/201721425WPF로 메신져 메세지 박스 구현 문의 [2]
... 31  32  33  34  35  36  37  38  39  40  41  [42]  43  44  45  ...