﻿// ***************************************************************************
// *
// * Copyright (C) 2013 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: org.unicode.cldr.icu.NewLdml2IcuConverter
// * Source File: <path>/dayPeriods.xml
// *
// ***************************************************************************
dayPeriods:table(nofallback){
    locales{
        bg{"set9"}
        chr{"set2"}
        da{"set3"}
        de{"set3"}
        ee{"set12"}
        en{"set2"}
        fa{"set13"}
        fr{"set5"}
        hr{"set3"}
        id{"set10"}
        nl{"set3"}
        pl{"set6"}
        pt{"set5"}
        root{"set1"}
        ta{"set8"}
        te{"set7"}
        uk{"set11"}
        zh{"set4"}
    }
    rules{
        set1{
            am{
                before{"12:00"}
                from{"0:00"}
            }
            pm{
                before{"24:00"}
                from{"12:00"}
            }
        }
        set10{
            afternoon{
                before{"18:00"}
                from{"15:00"}
            }
            earlyMorning{
                before{"5:00"}
                from{"3:00"}
            }
            midDay{
                before{"15:00"}
                from{"10:00"}
            }
            morning{
                before{"10:00"}
                from{"5:00"}
            }
            night{
                before{"3:00"}
                from{"18:00"}
            }
        }
        set11{
            afternoon{
                before{"17:00"}
                from{"12:00"}
            }
            evening{
                before{"24:00"}
                from{"17:00"}
            }
            morning{
                before{"12:00"}
                from{"3:00"}
            }
            night{
                before{"3:00"}
                from{"00:00"}
            }
        }
        set12{
            afternoon{
                before{"18:00"}
                from{"14:00"}
            }
            earlyAfternoon{
                before{"14:00"}
                from{"12:00"}
            }
            evening{
                before{"21:00"}
                from{"18:00"}
            }
            morning{
                before{"12:00"}
                from{"05:00"}
            }
            night{
                before{"4:00"}
                from{"21:00"}
            }
            weeHours{
                before{"05:00"}
                from{"04:00"}
            }
        }
        set13{
            afternoon{
                before{"19:00"}
                from{"16:00"}
            }
            earlyMorning{
                before{"06:00"}
                from{"01:00"}
            }
            midDay{
                after{"12:00"}
                before{"16:00"}
            }
            morning{
                before{"12:00"}
                from{"06:00"}
            }
            night{
                before{"24:00"}
                from{"19:00"}
            }
            noon{
                at{"12:00"}
            }
            weeHours{
                before{"01:00"}
                from{"00:00"}
            }
        }
        set2{
            am{
                before{"12:00"}
                from{"0:00"}
            }
            noon{
                at{"12:00"}
            }
            pm{
                after{"12:00"}
                before{"24:00"}
            }
        }
        set3{
            afternoon{
                after{"12:00"}
                before{"17:00"}
            }
            earlyMorning{
                before{"9:00"}
                from{"0:00"}
            }
            evening{
                before{"21:00"}
                from{"17:00"}
            }
            morning{
                before{"12:00"}
                from{"9:00"}
            }
            night{
                before{"24:00"}
                from{"21:00"}
            }
            noon{
                at{"12:00"}
            }
        }
        set4{
            afternoon{
                before{"18:00"}
                from{"13:00"}
            }
            earlyMorning{
                before{"6:00"}
                from{"4:00"}
            }
            midDay{
                before{"13:00"}
                from{"12:00"}
            }
            morning{
                before{"12:00"}
                from{"6:00"}
            }
            night{
                before{"24:00"}
                from{"18:00"}
            }
            weeHours{
                before{"4:00"}
                from{"00:00"}
            }
        }
        set5{
            afternoon{
                after{"12:00"}
                before{"19:00"}
            }
            morning{
                before{"12:00"}
                from{"00:00"}
            }
            night{
                before{"24:00"}
                from{"19:00"}
            }
            noon{
                at{"12:00"}
            }
        }
        set6{
            afternoon{
                after{"12:00"}
                before{"16:00"}
            }
            earlyMorning{
                before{"5:00"}
                from{"3:00"}
            }
            evening{
                before{"22:00"}
                from{"16:00"}
            }
            lateMorning{
                before{"12:00"}
                from{"10:00"}
            }
            morning{
                before{"10:00"}
                from{"5:00"}
            }
            night{
                before{"3:00"}
                from{"22:00"}
            }
            noon{
                at{"12:00"}
            }
        }
        set7{
            afternoon{
                after{"12:00"}
                before{"15:00"}
            }
            earlyMorning{
                before{"6:00"}
                from{"3:00"}
            }
            evening{
                before{"18:00"}
                from{"15:00"}
            }
            morning{
                before{"12:00"}
                from{"6:00"}
            }
            night{
                before{"3:00"}
                from{"18:00"}
            }
            noon{
                at{"12:00"}
            }
        }
        set8{
            afternoon{
                before{"18:00"}
                from{"14:00"}
            }
            earlyMorning{
                before{"6:00"}
                from{"2:00"}
            }
            evening{
                before{"22:00"}
                from{"18:00"}
            }
            lateMorning{
                before{"14:00"}
                from{"10:00"}
            }
            morning{
                before{"10:00"}
                from{"6:00"}
            }
            night{
                before{"2:00"}
                from{"22:00"}
            }
        }
        set9{
            afternoon{
                before{"18:00"}
                from{"15:00"}
            }
            earlyMorning{
                before{"6:00"}
                from{"5:00"}
            }
            evening{
                before{"20:00"}
                from{"18:00"}
            }
            lateEvening{
                before{"22:00"}
                from{"20:00"}
            }
            lateMorning{
                before{"12:00"}
                from{"10:00"}
            }
            midDay{
                after{"12:00"}
                before{"15:00"}
            }
            morning{
                before{"10:00"}
                from{"6:00"}
            }
            night{
                before{"24:00"}
                from{"22:00"}
            }
            noon{
                at{"12:00"}
            }
            weeHours{
                before{"5:00"}
                from{"00:00"}
            }
        }
    }
}
