시간이 포함 된 데이터베이스의 열이 HH:MM
형식입니다. 이제 11:00 - 12:00
과 같은 간단한 표현식이 있다면 나는 C#에서 확장 메서드를 쉽게 만들 수 있습니다. SubtractTime
으로 호출하고 런타임에 내 인수를 전달합니다. 나는 예를 들어 데이터베이스에 내 공식을 저장합니다 :디자인 지원 : 런타임에 계산 된 식의 시간 계산
Condition Value
ExamTimeRemaing > 10:00 SubtractTime(Original,Remaining)
을 이제 위의 경우에 내가 런타임에 내 SubtractTime
기능을 사용하여 반사 호출 할 수 있습니다, 그러나 내 문제는 이것이다, 어떤 내 표현처럼 복잡하게 될 경우 :
10:00 + 12:00 * 00:02 - 10:11
어떻게 표현식을 구문 분석합니까? 코딩에 도움이 필요하지 않습니다. 이미 시간을 틱으로 변환 한 다음 내 확장을 HH:MM
으로 가지고 있습니다. 이것은 디자인에 관한 질문입니다. 나는 규칙 엔진을 효율적으로 생성 할 수 있도록 확장 가능한 솔루션을 원한다.
12:00 * 00:02의 결과는 무엇입니까? –
이것은 일반적인 렉서/파서 질문입니다. 나는 렉서와 그램저가 무엇인지에 대해 독해 할 것을 강력하게 권고 할 수있다. Antlr과 금색 파서는 좋은 출발점입니다. – atlaste
HH MM의 곱셈은 @PaulZahra가 언급 한대로 정교 할 필요가 있습니다. –