2017-02-07 1 views
0

저는 F #에서 정말 새내기입니다. 다음은 두 날짜의 차이를 계산하는 함수를 작성하려는 시도입니다.F와 함께 날짜 작업 #

let test date = 
    let today = DateTime.Now 
    let fromdate = DateTime.Parse(date) 
    let count = Convert.ToInt32(today - fromdate) 
    date 

위의 코드는 오류를

System.InvalidCastException 메시지를 표시 : 'System.IConvertible'입력 유형 'System.TimeSpan'의 개체를 캐스팅 할 수 없습니다.

+1

반환하려는 단위는 무엇입니까? – ildjarn

+0

함수에서'date'가 아닌'count'도 리턴해야합니다. 당신이 카운트를 찾고 있다고 가정합니다. – s952163

답변

1

"빼기"연산자를 적용한 시간 간격을 두 날짜로 변환 할 필요가 없습니다. 아래의 스크린 샷은 함수를 수정하려는 나의 시도 및 반환하는 값의 예입니다.

Result of applying the fixed function

2

두 날짜 시간 사이의 차이는 당신에게 당신이 더 동작 할 수있는에 TimeSpan object을 줄 것이다. 반환 값으로 사용되므로 함수의 마지막 문이어야합니다. 링크의 MS 문서에서 다양한 속성 및 메서드를 확인할 수 있습니다. 엄밀히 말하자면, 이것은 BCL의 일부이므로 VB # 또는 C#에서 동일한 작업을 수행하는 F #보다는 오히려 .NET입니다. 기능을 더 세부적으로 조정하려면 DateTime.TryParse을 검사하고 유효한 날짜를받지 못할 가능성을 처리해야합니다.

open System 

let test date = 
    let today = DateTime.Now 
    let fromdate = DateTime.Parse(date) 
    (today - fromdate).Days 

test "2017/12/31" // val it : int = -325