FireBirdLib - Topfield TMS PVR TAP Programming Library
DST_ProcessRule.c
Go to the documentation of this file.
1#include <stdio.h>
2#include "FBLib_time.h"
3
4void DST_ProcessRule(char *dstRuleString, dword *dstDate, dword StartDate)
5{
7
8 byte ruleOrdinal = 0;
9 byte ruleDay = 0;
10 byte ruleMonth = 0;
11 byte ruleHour = 0;
12 byte ruleMin = 0;
13
14 dword transitionDate = 0;
15
16 if(dstRuleString == NULL)
17 {
18 if(dstDate) *dstDate = 0;
19
20 TRACEEXIT();
21 return;
22 }
23
24 sscanf(dstRuleString, "%hhu,%hhu,%hhu,%02hhu:%02hhu", &ruleOrdinal, &ruleDay, &ruleMonth, &ruleHour, &ruleMin);
25
26 //Some basic error checking, but it could be more comprehensive if required.
27 if(ruleOrdinal > 5){ruleOrdinal = 5;}
28 if(ruleDay > 6){ruleDay = 6;}
29 if(ruleMonth > 12){ruleMonth = 12;}
30
31 transitionDate = DST_CalcTransition(ruleOrdinal, ruleDay, ruleMonth, ruleHour, ruleMin, StartDate);
32
33 if(dstDate) *dstDate = transitionDate;
34
35 TRACEEXIT();
36}
void DST_ProcessRule(char *dstRuleString, dword *dstDate, dword StartDate)
dword DST_CalcTransition(byte ruleOrdinal, byte ruleDay, byte ruleMonth, byte ruleHour, byte ruleMin, dword StartDate)
#define TRACEEXIT()
Definition: libFireBird.h:1244
#define TRACEENTER()
Definition: libFireBird.h:1243