Lines Matching full:rule
537 // Parse the first rule
554 // Only support the rule using 7 continuous days
584 // Use DOW_GEQ_DOM rule with firstDay as the start date
588 // Check if BYMONTH + BYMONTHDAY + BYDAY rule with multiple RRULE lines.
600 // Note: To check valid date range across multiple rule is a little
628 // Check if BYMONTH + BYMONTHDAY + BYDAY rule
638 // support the rule
704 // Day in month rule, for example, 15th day in the month
707 // Nth day of week rule, for example, last Sunday
710 // First day of week after day of month rule, for example,
762 * Check if the DOW rule specified by month, weekInMonth and dayOfWeek is equivalent
800 * Convert the rule to its equivalent rule using WALL_TIME mode.
804 static DateTimeRule* toWallTimeRule(const DateTimeRule* rule, int32_t rawOffset, int32_t dstSavings) {
805 if (rule->getTimeRuleType() == DateTimeRule::WALL_TIME) {
808 int32_t wallt = rule->getRuleMillisInDay();
809 if (rule->getTimeRuleType() == DateTimeRule::UTC_TIME) {
811 } else if (rule->getTimeRuleType() == DateTimeRule::STANDARD_TIME) {
826 month = rule->getRuleMonth();
827 dom = rule->getRuleDayOfMonth();
828 dow = rule->getRuleDayOfWeek();
829 dtype = rule->getDateRuleType();
833 // Convert to DOW_GEW_DOM or DOW_LEQ_DOM rule first
834 int32_t wim = rule->getRuleWeekInMonth();
864 // Create a new rule
1367 UBool isRRULE = FALSE; // true if the rule is described by RRULE
1370 UDate firstStart = MAX_MILLIS; // the earliest rule start time
1504 // create a time zone rule
1505 TimeZoneRule *rule = NULL;
1540 // Create the rule
1543 rule = createRuleByRRULE(zonename, rawOffset, dstSavings, start, dates, fromOffset, status);
1545 rule = createRuleByRDATE(zonename, rawOffset, dstSavings, start, dates, fromOffset, status);
1547 if (U_FAILURE(status) || rule == NULL) {
1550 UBool startAvail = rule->getFirstStart(fromOffset, 0, actualStart);
1552 // save from offset information for the earliest rule
1571 rules->addElement(rule, status);
1580 // Must have at least one rule
1585 // Create a initial rule
1620 // Only one final rule, only governs the initial rule,
1622 // add this transition rule
1625 // Normalize the final rule
1630 // Find the last non-final rule
1787 // Create a RuleBasedTimeZone with the subset rule
1850 // Create a RuleBasedTimeZone with the subset rule
2102 // Use a single rule if possible
2107 // Not equivalent rule - write out two different rules
2144 // Use a single rule if possible
2149 // Not equivalent rule - write out two different rules
2255 * Write start times defined by a DOM rule using VTIMEZONE RRULE
2289 * Write start times defined by a DOW rule using VTIMEZONE RRULE
2325 * Write start times defined by a DOW_GEQ_DOM rule using VTIMEZONE RRULE
2335 // Check if this rule can be converted to DOW rule
2337 // Can be represented by DOW rule
2344 // Can be represented by DOW rule with negative week number
2367 // Note: When a rule is separated into two, UNTIL attribute needs to be
2449 * Write start times defined by a DOW_LEQ_DOM rule using VTIMEZONE RRULE
2459 // Check if this rule can be converted to DOW rule
2461 // Can be represented by DOW rule
2465 // Can be represented by DOW rule with negative week number
2473 // Otherwise, convert this to DOW_GEQ_DOM rule
2480 * Write the final time zone rule using RRULE, with no UNTIL attribute
2483 VTimeZone::writeFinalRule(VTZWriter& writer, UBool isDst, const AnnualTimeZoneRule* rule,
2490 const DateTimeRule *dtrule = toWallTimeRule(rule->getRule(), fromRawOffset, fromDSTSavings);
2493 dtrule = rule->getRule();
2496 // If the rule's mills in a day is out of range, adjust start time.
2507 int32_t toOffset = rule->getRawOffset() + rule->getDSTSavings();
2509 rule->getName(name);