当前位置: 首页>>代码示例>>Java>>正文


Java ResolverStyle.STRICT属性代码示例

本文整理汇总了Java中java.time.format.ResolverStyle.STRICT属性的典型用法代码示例。如果您正苦于以下问题:Java ResolverStyle.STRICT属性的具体用法?Java ResolverStyle.STRICT怎么用?Java ResolverStyle.STRICT使用的例子?那么恭喜您, 这里精选的属性代码示例或许可以为您提供帮助。您也可以进一步了解该属性所在java.time.format.ResolverStyle的用法示例。


在下文中一共展示了ResolverStyle.STRICT属性的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: data_resolverStyle

@DataProvider(name="resolverStyle")
Object[][] data_resolverStyle() {
    return new Object[][] {
            {"2000/15/30", ResolverStyle.LENIENT, null, 2001, 3, 30},
            {"2000/02/30", ResolverStyle.SMART, null, 2000, 2, 29},
            {"2000/02/29", ResolverStyle.STRICT, null, 2000, 2, 29},

            {"2000/15/30 CE", ResolverStyle.LENIENT, null, 2001, 3, 30},
            {"2000/02/30 CE", ResolverStyle.SMART, null, 2000, 2, 29},
            {"5/02/29 BCE", ResolverStyle.STRICT, null, 5, 2, 29},

            {"4/02/29 BCE", ResolverStyle.STRICT, DateTimeException.class, -1, -1, -1},
            {"2000/02/30 CE", ResolverStyle.STRICT, DateTimeException.class, -1, -1, -1},

    };
}
 
开发者ID:lambdalab-mirror,项目名称:jdk8u-jdk,代码行数:16,代码来源:TCKResolverStyle.java

示例2: resolve

@Override
public ChronoLocalDate resolve(
        Map<TemporalField, Long> fieldValues, TemporalAccessor partialTemporal, ResolverStyle resolverStyle) {
    Long yearLong = fieldValues.get(YEAR);
    Long qoyLong = fieldValues.get(QUARTER_OF_YEAR);
    if (yearLong == null || qoyLong == null) {
        return null;
    }
    int y = YEAR.checkValidIntValue(yearLong);  // always validate
    long doq = fieldValues.get(DAY_OF_QUARTER);
    ensureIso(partialTemporal);
    LocalDate date;
    if (resolverStyle == ResolverStyle.LENIENT) {
        date = LocalDate.of(y, 1, 1).plusMonths(Math.multiplyExact(Math.subtractExact(qoyLong, 1), 3));
        doq = Math.subtractExact(doq, 1);
    } else {
        int qoy = QUARTER_OF_YEAR.range().checkValidIntValue(qoyLong, QUARTER_OF_YEAR);  // validated
        date = LocalDate.of(y, ((qoy - 1) * 3) + 1, 1);
        if (doq < 1 || doq > 90) {
            if (resolverStyle == ResolverStyle.STRICT) {
                rangeRefinedBy(date).checkValidValue(doq, this);  // only allow exact range
            } else {  // SMART
                range().checkValidValue(doq, this);  // allow 1-92 rolling into next quarter
            }
        }
        doq--;
    }
    fieldValues.remove(this);
    fieldValues.remove(YEAR);
    fieldValues.remove(QUARTER_OF_YEAR);
    return date.plusDays(doq);
}
 
开发者ID:SunburstApps,项目名称:OpenJSharp,代码行数:32,代码来源:IsoFields.java

示例3: resolveYearOfEra

@Override  // override for enhanced behaviour
LocalDate resolveYearOfEra(Map<TemporalField, Long> fieldValues, ResolverStyle resolverStyle) {
    Long yoeLong = fieldValues.remove(YEAR_OF_ERA);
    if (yoeLong != null) {
        if (resolverStyle != ResolverStyle.LENIENT) {
            YEAR_OF_ERA.checkValidValue(yoeLong);
        }
        Long era = fieldValues.remove(ERA);
        if (era == null) {
            Long year = fieldValues.get(YEAR);
            if (resolverStyle == ResolverStyle.STRICT) {
                // do not invent era if strict, but do cross-check with year
                if (year != null) {
                    addFieldValue(fieldValues, YEAR, (year > 0 ? yoeLong: Math.subtractExact(1, yoeLong)));
                } else {
                    // reinstate the field removed earlier, no cross-check issues
                    fieldValues.put(YEAR_OF_ERA, yoeLong);
                }
            } else {
                // invent era
                addFieldValue(fieldValues, YEAR, (year == null || year > 0 ? yoeLong: Math.subtractExact(1, yoeLong)));
            }
        } else if (era.longValue() == 1L) {
            addFieldValue(fieldValues, YEAR, yoeLong);
        } else if (era.longValue() == 0L) {
            addFieldValue(fieldValues, YEAR, Math.subtractExact(1, yoeLong));
        } else {
            throw new DateTimeException("Invalid value for era: " + era);
        }
    } else if (fieldValues.containsKey(ERA)) {
        ERA.checkValidValue(fieldValues.get(ERA));  // always validated
    }
    return null;
}
 
开发者ID:SunburstApps,项目名称:OpenJSharp,代码行数:34,代码来源:IsoChronology.java

示例4: resolveYearOfEra

@Override  // override for special Japanese behavior
ChronoLocalDate resolveYearOfEra(Map<TemporalField, Long> fieldValues, ResolverStyle resolverStyle) {
    // validate era and year-of-era
    Long eraLong = fieldValues.get(ERA);
    JapaneseEra era = null;
    if (eraLong != null) {
        era = eraOf(range(ERA).checkValidIntValue(eraLong, ERA));  // always validated
    }
    Long yoeLong = fieldValues.get(YEAR_OF_ERA);
    int yoe = 0;
    if (yoeLong != null) {
        yoe = range(YEAR_OF_ERA).checkValidIntValue(yoeLong, YEAR_OF_ERA);  // always validated
    }
    // if only year-of-era and no year then invent era unless strict
    if (era == null && yoeLong != null && fieldValues.containsKey(YEAR) == false && resolverStyle != ResolverStyle.STRICT) {
        era = JapaneseEra.values()[JapaneseEra.values().length - 1];
    }
    // if both present, then try to create date
    if (yoeLong != null && era != null) {
        if (fieldValues.containsKey(MONTH_OF_YEAR)) {
            if (fieldValues.containsKey(DAY_OF_MONTH)) {
                return resolveYMD(era, yoe, fieldValues, resolverStyle);
            }
        }
        if (fieldValues.containsKey(DAY_OF_YEAR)) {
            return resolveYD(era, yoe, fieldValues, resolverStyle);
        }
    }
    return null;
}
 
开发者ID:SunburstApps,项目名称:OpenJSharp,代码行数:30,代码来源:JapaneseChronology.java

示例5: resolveYAA

ChronoLocalDate resolveYAA(Map<TemporalField, Long> fieldValues, ResolverStyle resolverStyle) {
    int y = range(YEAR).checkValidIntValue(fieldValues.remove(YEAR), YEAR);
    if (resolverStyle == ResolverStyle.LENIENT) {
        long weeks = Math.subtractExact(fieldValues.remove(ALIGNED_WEEK_OF_YEAR), 1);
        long days = Math.subtractExact(fieldValues.remove(ALIGNED_DAY_OF_WEEK_IN_YEAR), 1);
        return dateYearDay(y, 1).plus(weeks, WEEKS).plus(days, DAYS);
    }
    int aw = range(ALIGNED_WEEK_OF_YEAR).checkValidIntValue(fieldValues.remove(ALIGNED_WEEK_OF_YEAR), ALIGNED_WEEK_OF_YEAR);
    int ad = range(ALIGNED_DAY_OF_WEEK_IN_YEAR).checkValidIntValue(fieldValues.remove(ALIGNED_DAY_OF_WEEK_IN_YEAR), ALIGNED_DAY_OF_WEEK_IN_YEAR);
    ChronoLocalDate date = dateYearDay(y, 1).plus((aw - 1) * 7 + (ad - 1), DAYS);
    if (resolverStyle == ResolverStyle.STRICT && date.get(YEAR) != y) {
        throw new DateTimeException("Strict mode rejected resolved date as it is in a different year");
    }
    return date;
}
 
开发者ID:SunburstApps,项目名称:OpenJSharp,代码行数:15,代码来源:AbstractChronology.java

示例6: data_resolve_yearOfEra

@DataProvider(name = "resolve_yearOfEra")
Object[][] data_resolve_yearOfEra() {
    return new Object[][] {
            // era only
            {ResolverStyle.STRICT, -1, null, null, null, null},
            {ResolverStyle.SMART, -1, null, null, null, null},
            {ResolverStyle.LENIENT, -1, null, null, null, null},

            {ResolverStyle.STRICT, 0, null, null, ChronoField.ERA, 0},
            {ResolverStyle.SMART, 0, null, null, ChronoField.ERA, 0},
            {ResolverStyle.LENIENT, 0, null, null, ChronoField.ERA, 0},

            {ResolverStyle.STRICT, 1, null, null, ChronoField.ERA, 1},
            {ResolverStyle.SMART, 1, null, null, ChronoField.ERA, 1},
            {ResolverStyle.LENIENT, 1, null, null, ChronoField.ERA, 1},

            {ResolverStyle.STRICT, 2, null, null, null, null},
            {ResolverStyle.SMART, 2, null, null, null, null},
            {ResolverStyle.LENIENT, 2, null, null, null, null},

            // era and year-of-era
            {ResolverStyle.STRICT, -1, 2012, null, null, null},
            {ResolverStyle.SMART, -1, 2012, null, null, null},
            {ResolverStyle.LENIENT, -1, 2012, null, null, null},

            {ResolverStyle.STRICT, 0, 2012, null, ChronoField.YEAR, -2011},
            {ResolverStyle.SMART, 0, 2012, null, ChronoField.YEAR, -2011},
            {ResolverStyle.LENIENT, 0, 2012, null, ChronoField.YEAR, -2011},

            {ResolverStyle.STRICT, 1, 2012, null, ChronoField.YEAR, 2012},
            {ResolverStyle.SMART, 1, 2012, null, ChronoField.YEAR, 2012},
            {ResolverStyle.LENIENT, 1, 2012, null, ChronoField.YEAR, 2012},

            {ResolverStyle.STRICT, 2, 2012, null, null, null},
            {ResolverStyle.SMART, 2, 2012, null, null, null},
            {ResolverStyle.LENIENT, 2, 2012, null, null, null},

            // year-of-era only
            {ResolverStyle.STRICT, null, 2012, null, ChronoField.YEAR_OF_ERA, 2012},
            {ResolverStyle.SMART, null, 2012, null, ChronoField.YEAR, 2012},
            {ResolverStyle.LENIENT, null, 2012, null, ChronoField.YEAR, 2012},

            {ResolverStyle.STRICT, null, Integer.MAX_VALUE, null, null, null},
            {ResolverStyle.SMART, null, Integer.MAX_VALUE, null, null, null},
            {ResolverStyle.LENIENT, null, Integer.MAX_VALUE, null, ChronoField.YEAR, Integer.MAX_VALUE},

            // year-of-era and year
            {ResolverStyle.STRICT, null, 2012, 2012, ChronoField.YEAR, 2012},
            {ResolverStyle.SMART, null, 2012, 2012, ChronoField.YEAR, 2012},
            {ResolverStyle.LENIENT, null, 2012, 2012, ChronoField.YEAR, 2012},

            {ResolverStyle.STRICT, null, 2012, -2011, ChronoField.YEAR, -2011},
            {ResolverStyle.SMART, null, 2012, -2011, ChronoField.YEAR, -2011},
            {ResolverStyle.LENIENT, null, 2012, -2011, ChronoField.YEAR, -2011},

            {ResolverStyle.STRICT, null, 2012, 2013, null, null},
            {ResolverStyle.SMART, null, 2012, 2013, null, null},
            {ResolverStyle.LENIENT, null, 2012, 2013, null, null},

            {ResolverStyle.STRICT, null, 2012, -2013, null, null},
            {ResolverStyle.SMART, null, 2012, -2013, null, null},
            {ResolverStyle.LENIENT, null, 2012, -2013, null, null},
    };
}
 
开发者ID:lambdalab-mirror,项目名称:jdk8u-jdk,代码行数:64,代码来源:TCKMinguoChronology.java


注:本文中的java.time.format.ResolverStyle.STRICT属性示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。