{
  "generated": "2026-09-09",
  "method": "Every clock minute of each reference year, per city; hour pillar = 2-hour branch (子 starts 23:00); day pillar changes at 00:00; true solar = UTC + longitude×4min + equation of time (NOAA approx). Uniform minute weighting. DST from ICU tzdata.",
  "years": [
    1980,
    1990,
    2000,
    2010
  ],
  "cities": [
    {
      "key": "kashgar",
      "en": "Kashgar",
      "zh": "喀什",
      "tz": "Asia/Shanghai",
      "lon": 75.99,
      "group": "china",
      "hourFlipPct": 100,
      "hourFlipRange": [
        100,
        100
      ],
      "dayFlipPct": 12.7,
      "dstSharePct": 10.5,
      "hourFlipInDstPct": 25,
      "hourFlipOutDstPct": 100,
      "correctionRange": [
        -242,
        -160
      ]
    },
    {
      "key": "urumqi",
      "en": "Ürümqi",
      "zh": "乌鲁木齐",
      "tz": "Asia/Shanghai",
      "lon": 87.62,
      "group": "china",
      "hourFlipPct": 99.4,
      "hourFlipRange": [
        99.4,
        99.4
      ],
      "dayFlipPct": 9.5,
      "dstSharePct": 10.5,
      "hourFlipInDstPct": 25,
      "hourFlipOutDstPct": 99.3,
      "correctionRange": [
        -196,
        -113
      ]
    },
    {
      "key": "lhasa",
      "en": "Lhasa",
      "zh": "拉萨",
      "tz": "Asia/Shanghai",
      "lon": 91.11,
      "group": "china",
      "hourFlipPct": 95.5,
      "hourFlipRange": [
        95.2,
        96.5
      ],
      "dayFlipPct": 8.5,
      "dstSharePct": 10.5,
      "hourFlipInDstPct": 25,
      "hourFlipOutDstPct": 94.9,
      "correctionRange": [
        -182,
        -99
      ]
    },
    {
      "key": "madrid",
      "en": "Madrid",
      "zh": "马德里",
      "tz": "Europe/Madrid",
      "lon": -3.7,
      "group": "diaspora",
      "hourFlipPct": 83.5,
      "hourFlipRange": [
        80.5,
        85.8
      ],
      "dayFlipPct": 7.5,
      "dstSharePct": 54.6,
      "hourFlipInDstPct": 100,
      "hourFlipOutDstPct": 63.8,
      "correctionRange": [
        -141,
        -58
      ]
    },
    {
      "key": "paris",
      "en": "Paris",
      "zh": "巴黎",
      "tz": "Europe/Paris",
      "lon": 2.35,
      "group": "diaspora",
      "hourFlipPct": 69.9,
      "hourFlipRange": [
        66.5,
        72.3
      ],
      "dayFlipPct": 5.8,
      "dstSharePct": 54.6,
      "hourFlipInDstPct": 91.9,
      "hourFlipOutDstPct": 43.6,
      "correctionRange": [
        -117,
        -34
      ]
    },
    {
      "key": "kunming",
      "en": "Kunming",
      "zh": "昆明",
      "tz": "Asia/Shanghai",
      "lon": 102.72,
      "group": "china",
      "hourFlipPct": 62.4,
      "hourFlipRange": [
        58,
        75.5
      ],
      "dayFlipPct": 5.3,
      "dstSharePct": 10.5,
      "hourFlipInDstPct": 25,
      "hourFlipOutDstPct": 57.9,
      "correctionRange": [
        -135,
        -53
      ]
    },
    {
      "key": "amsterdam",
      "en": "Amsterdam",
      "zh": "阿姆斯特丹",
      "tz": "Europe/Amsterdam",
      "lon": 4.9,
      "group": "diaspora",
      "hourFlipPct": 61.4,
      "hourFlipRange": [
        58,
        63.8
      ],
      "dayFlipPct": 5.1,
      "dstSharePct": 54.6,
      "hourFlipInDstPct": 83.4,
      "hourFlipOutDstPct": 35.1,
      "correctionRange": [
        -107,
        -24
      ]
    },
    {
      "key": "lanzhou",
      "en": "Lanzhou",
      "zh": "兰州",
      "tz": "Asia/Shanghai",
      "lon": 103.83,
      "group": "china",
      "hourFlipPct": 59.1,
      "hourFlipRange": [
        54.3,
        73.3
      ],
      "dayFlipPct": 5,
      "dstSharePct": 10.5,
      "hourFlipInDstPct": 25,
      "hourFlipOutDstPct": 54.2,
      "correctionRange": [
        -131,
        -48
      ]
    },
    {
      "key": "chengdu",
      "en": "Chengdu",
      "zh": "成都",
      "tz": "Asia/Shanghai",
      "lon": 104.07,
      "group": "china",
      "hourFlipPct": 58.4,
      "hourFlipRange": [
        53.5,
        72.9
      ],
      "dayFlipPct": 4.9,
      "dstSharePct": 10.5,
      "hourFlipInDstPct": 25,
      "hourFlipOutDstPct": 53.4,
      "correctionRange": [
        -130,
        -47
      ]
    },
    {
      "key": "kuala_lumpur",
      "en": "Kuala Lumpur",
      "zh": "吉隆坡",
      "tz": "Asia/Kuala_Lumpur",
      "lon": 101.69,
      "group": "asia",
      "hourFlipPct": 55.2,
      "hourFlipRange": [
        36.5,
        61.5
      ],
      "dayFlipPct": 4.6,
      "dstSharePct": 0,
      "hourFlipInDstPct": 0,
      "hourFlipOutDstPct": 55.2,
      "correctionRange": [
        -88,
        -27
      ]
    },
    {
      "key": "singapore",
      "en": "Singapore",
      "zh": "新加坡",
      "tz": "Asia/Singapore",
      "lon": 103.82,
      "group": "asia",
      "hourFlipPct": 48.1,
      "hourFlipRange": [
        29.4,
        54.4
      ],
      "dayFlipPct": 4,
      "dstSharePct": 0,
      "hourFlipInDstPct": 0,
      "hourFlipOutDstPct": 48.1,
      "correctionRange": [
        -79,
        -18
      ]
    },
    {
      "key": "houston",
      "en": "Houston",
      "zh": "休斯顿",
      "tz": "America/Chicago",
      "lon": -95.37,
      "group": "diaspora",
      "hourFlipPct": 47.1,
      "hourFlipRange": [
        43.2,
        50.9
      ],
      "dayFlipPct": 3.9,
      "dstSharePct": 57.5,
      "hourFlipInDstPct": 66.8,
      "hourFlipOutDstPct": 20.5,
      "correctionRange": [
        -91,
        -5
      ]
    },
    {
      "key": "toronto",
      "en": "Toronto",
      "zh": "多伦多",
      "tz": "America/Toronto",
      "lon": -79.38,
      "group": "diaspora",
      "hourFlipPct": 43.8,
      "hourFlipRange": [
        39.9,
        47.6
      ],
      "dayFlipPct": 3.6,
      "dstSharePct": 57.5,
      "hourFlipInDstPct": 63.5,
      "hourFlipOutDstPct": 17.2,
      "correctionRange": [
        -87,
        -1
      ]
    },
    {
      "key": "auckland",
      "en": "Auckland",
      "zh": "奥克兰",
      "tz": "Pacific/Auckland",
      "lon": 174.76,
      "group": "diaspora",
      "hourFlipPct": 40.1,
      "hourFlipRange": [
        35.4,
        43.9
      ],
      "dayFlipPct": 3.3,
      "dstSharePct": 44.5,
      "hourFlipInDstPct": 67.9,
      "hourFlipOutDstPct": 18,
      "correctionRange": [
        -96,
        -5
      ]
    },
    {
      "key": "melbourne",
      "en": "Melbourne",
      "zh": "墨尔本",
      "tz": "Australia/Melbourne",
      "lon": 144.96,
      "group": "diaspora",
      "hourFlipPct": 39.9,
      "hourFlipRange": [
        34.7,
        46.2
      ],
      "dayFlipPct": 3.3,
      "dstSharePct": 45.4,
      "hourFlipInDstPct": 67.6,
      "hourFlipOutDstPct": 17.2,
      "correctionRange": [
        -95,
        -4
      ]
    },
    {
      "key": "vancouver",
      "en": "Vancouver",
      "zh": "温哥华",
      "tz": "America/Vancouver",
      "lon": -123.12,
      "group": "diaspora",
      "hourFlipPct": 39.8,
      "hourFlipRange": [
        36,
        43.6
      ],
      "dayFlipPct": 3.3,
      "dstSharePct": 57.5,
      "hourFlipInDstPct": 59.3,
      "hourFlipOutDstPct": 13.5,
      "correctionRange": [
        -82,
        4
      ]
    },
    {
      "key": "manchester",
      "en": "Manchester",
      "zh": "曼彻斯特",
      "tz": "Europe/London",
      "lon": -2.24,
      "group": "diaspora",
      "hourFlipPct": 38.6,
      "hourFlipRange": [
        38.2,
        39.3
      ],
      "dayFlipPct": 3.2,
      "dstSharePct": 59.8,
      "hourFlipInDstPct": 56.6,
      "hourFlipOutDstPct": 11.7,
      "correctionRange": [
        -78,
        7
      ]
    },
    {
      "key": "san_francisco",
      "en": "San Francisco",
      "zh": "旧金山",
      "tz": "America/Los_Angeles",
      "lon": -122.42,
      "group": "diaspora",
      "hourFlipPct": 37.8,
      "hourFlipRange": [
        34,
        41.5
      ],
      "dayFlipPct": 3.2,
      "dstSharePct": 57.5,
      "hourFlipInDstPct": 56.9,
      "hourFlipOutDstPct": 12,
      "correctionRange": [
        -80,
        7
      ]
    },
    {
      "key": "seattle",
      "en": "Seattle",
      "zh": "西雅图",
      "tz": "America/Los_Angeles",
      "lon": -122.33,
      "group": "diaspora",
      "hourFlipPct": 37.5,
      "hourFlipRange": [
        33.8,
        41.2
      ],
      "dayFlipPct": 3.1,
      "dstSharePct": 57.5,
      "hourFlipInDstPct": 56.6,
      "hourFlipOutDstPct": 11.8,
      "correctionRange": [
        -79,
        7
      ]
    },
    {
      "key": "berlin",
      "en": "Berlin",
      "zh": "柏林",
      "tz": "Europe/Berlin",
      "lon": 13.4,
      "group": "diaspora",
      "hourFlipPct": 34.7,
      "hourFlipRange": [
        31.8,
        36.6
      ],
      "dayFlipPct": 2.9,
      "dstSharePct": 54.6,
      "hourFlipInDstPct": 55.1,
      "hourFlipOutDstPct": 10.3,
      "correctionRange": [
        -73,
        10
      ]
    },
    {
      "key": "london",
      "en": "London",
      "zh": "伦敦",
      "tz": "Europe/London",
      "lon": -0.13,
      "group": "diaspora",
      "hourFlipPct": 33.2,
      "hourFlipRange": [
        32.9,
        34
      ],
      "dayFlipPct": 2.8,
      "dstSharePct": 59.8,
      "hourFlipInDstPct": 49.5,
      "hourFlipOutDstPct": 8.9,
      "correctionRange": [
        -70,
        16
      ]
    },
    {
      "key": "new_york",
      "en": "New York",
      "zh": "纽约",
      "tz": "America/New_York",
      "lon": -74,
      "group": "diaspora",
      "hourFlipPct": 29.4,
      "hourFlipRange": [
        26.2,
        32.5
      ],
      "dayFlipPct": 2.5,
      "dstSharePct": 57.5,
      "hourFlipInDstPct": 45.5,
      "hourFlipOutDstPct": 7.7,
      "correctionRange": [
        -66,
        20
      ]
    },
    {
      "key": "guangzhou",
      "en": "Guangzhou",
      "zh": "广州",
      "tz": "Asia/Shanghai",
      "lon": 113.26,
      "group": "china",
      "hourFlipPct": 28.2,
      "hourFlipRange": [
        22.9,
        44
      ],
      "dayFlipPct": 2.3,
      "dstSharePct": 10.5,
      "hourFlipInDstPct": 18.4,
      "hourFlipOutDstPct": 22.8,
      "correctionRange": [
        -93,
        -11
      ]
    },
    {
      "key": "los_angeles",
      "en": "Los Angeles",
      "zh": "洛杉矶",
      "tz": "America/Los_Angeles",
      "lon": -118.24,
      "group": "diaspora",
      "hourFlipPct": 27.9,
      "hourFlipRange": [
        25,
        30.8
      ],
      "dayFlipPct": 2.3,
      "dstSharePct": 57.5,
      "hourFlipInDstPct": 43,
      "hourFlipOutDstPct": 7.5,
      "correctionRange": [
        -63,
        23
      ]
    },
    {
      "key": "seoul",
      "en": "Seoul",
      "zh": "首尔",
      "tz": "Asia/Seoul",
      "lon": 126.98,
      "group": "asia",
      "hourFlipPct": 27.2,
      "hourFlipRange": [
        27.2,
        27.2
      ],
      "dayFlipPct": 2.3,
      "dstSharePct": 0,
      "hourFlipInDstPct": 0,
      "hourFlipOutDstPct": 27.2,
      "correctionRange": [
        -47,
        -16
      ]
    },
    {
      "key": "chicago",
      "en": "Chicago",
      "zh": "芝加哥",
      "tz": "America/Chicago",
      "lon": -87.63,
      "group": "diaspora",
      "hourFlipPct": 26.8,
      "hourFlipRange": [
        24.2,
        29.5
      ],
      "dayFlipPct": 2.2,
      "dstSharePct": 57.5,
      "hourFlipInDstPct": 40.9,
      "hourFlipOutDstPct": 7.8,
      "correctionRange": [
        -60,
        26
      ]
    },
    {
      "key": "boston",
      "en": "Boston",
      "zh": "波士顿",
      "tz": "America/New_York",
      "lon": -71.06,
      "group": "diaspora",
      "hourFlipPct": 25,
      "hourFlipRange": [
        23.2,
        26.9
      ],
      "dayFlipPct": 2.1,
      "dstSharePct": 57.5,
      "hourFlipInDstPct": 35.7,
      "hourFlipOutDstPct": 10.6,
      "correctionRange": [
        -54,
        32
      ]
    },
    {
      "key": "sydney",
      "en": "Sydney",
      "zh": "悉尼",
      "tz": "Australia/Sydney",
      "lon": 151.21,
      "group": "diaspora",
      "hourFlipPct": 23.2,
      "hourFlipRange": [
        19.9,
        27.7
      ],
      "dayFlipPct": 1.9,
      "dstSharePct": 44.5,
      "hourFlipInDstPct": 46.6,
      "hourFlipOutDstPct": 4.4,
      "correctionRange": [
        -70,
        21
      ]
    },
    {
      "key": "harbin",
      "en": "Harbin",
      "zh": "哈尔滨",
      "tz": "Asia/Shanghai",
      "lon": 126.63,
      "group": "china",
      "hourFlipPct": 22.5,
      "hourFlipRange": [
        21.7,
        25
      ],
      "dayFlipPct": 1.9,
      "dstSharePct": 10.5,
      "hourFlipInDstPct": 7.2,
      "hourFlipOutDstPct": 21.8,
      "correctionRange": [
        -40,
        43
      ]
    },
    {
      "key": "hong_kong",
      "en": "Hong Kong",
      "zh": "香港",
      "tz": "Asia/Hong_Kong",
      "lon": 114.17,
      "group": "china",
      "hourFlipPct": 19.8,
      "hourFlipRange": [
        19.8,
        19.8
      ],
      "dayFlipPct": 1.7,
      "dstSharePct": 0,
      "hourFlipInDstPct": 0,
      "hourFlipOutDstPct": 19.8,
      "correctionRange": [
        -38,
        -7
      ]
    },
    {
      "key": "beijing",
      "en": "Beijing",
      "zh": "北京",
      "tz": "Asia/Shanghai",
      "lon": 116.41,
      "group": "china",
      "hourFlipPct": 17.8,
      "hourFlipRange": [
        12.5,
        33.6
      ],
      "dayFlipPct": 1.5,
      "dstSharePct": 10.5,
      "hourFlipInDstPct": 15.8,
      "hourFlipOutDstPct": 12.5,
      "correctionRange": [
        -81,
        2
      ]
    },
    {
      "key": "dubai",
      "en": "Dubai",
      "zh": "迪拜",
      "tz": "Asia/Dubai",
      "lon": 55.27,
      "group": "asia",
      "hourFlipPct": 16.2,
      "hourFlipRange": [
        16.2,
        16.2
      ],
      "dayFlipPct": 1.3,
      "dstSharePct": 0,
      "hourFlipInDstPct": 0,
      "hourFlipOutDstPct": 16.2,
      "correctionRange": [
        -34,
        -2
      ]
    },
    {
      "key": "bangkok",
      "en": "Bangkok",
      "zh": "曼谷",
      "tz": "Asia/Bangkok",
      "lon": 100.5,
      "group": "asia",
      "hourFlipPct": 15.4,
      "hourFlipRange": [
        15.4,
        15.4
      ],
      "dayFlipPct": 1.3,
      "dstSharePct": 0,
      "hourFlipInDstPct": 0,
      "hourFlipOutDstPct": 15.4,
      "correctionRange": [
        -33,
        -2
      ]
    },
    {
      "key": "tokyo",
      "en": "Tokyo",
      "zh": "东京",
      "tz": "Asia/Tokyo",
      "lon": 139.69,
      "group": "asia",
      "hourFlipPct": 15.2,
      "hourFlipRange": [
        15.2,
        15.2
      ],
      "dayFlipPct": 1.3,
      "dstSharePct": 0,
      "hourFlipInDstPct": 0,
      "hourFlipOutDstPct": 15.2,
      "correctionRange": [
        4,
        35
      ]
    },
    {
      "key": "perth",
      "en": "Perth",
      "zh": "珀斯",
      "tz": "Australia/Perth",
      "lon": 115.86,
      "group": "diaspora",
      "hourFlipPct": 14.2,
      "hourFlipRange": [
        14.2,
        14.2
      ],
      "dayFlipPct": 1.2,
      "dstSharePct": 0,
      "hourFlipInDstPct": 0,
      "hourFlipOutDstPct": 14.2,
      "correctionRange": [
        -31,
        0
      ]
    },
    {
      "key": "shanghai",
      "en": "Shanghai",
      "zh": "上海",
      "tz": "Asia/Shanghai",
      "lon": 121.47,
      "group": "china",
      "hourFlipPct": 11.2,
      "hourFlipRange": [
        6.8,
        24.5
      ],
      "dayFlipPct": 0.9,
      "dstSharePct": 10.5,
      "hourFlipInDstPct": 11.5,
      "hourFlipOutDstPct": 7.3,
      "correctionRange": [
        -60,
        22
      ]
    },
    {
      "key": "manila",
      "en": "Manila",
      "zh": "马尼拉",
      "tz": "Asia/Manila",
      "lon": 120.98,
      "group": "asia",
      "hourFlipPct": 8.4,
      "hourFlipRange": [
        6.3,
        15
      ],
      "dayFlipPct": 0.7,
      "dstSharePct": 4.7,
      "hourFlipInDstPct": 12.2,
      "hourFlipOutDstPct": 6.5,
      "correctionRange": [
        -62,
        20
      ]
    },
    {
      "key": "jakarta",
      "en": "Jakarta",
      "zh": "雅加达",
      "tz": "Asia/Jakarta",
      "lon": 106.85,
      "group": "asia",
      "hourFlipPct": 7.4,
      "hourFlipRange": [
        7.4,
        7.4
      ],
      "dayFlipPct": 0.6,
      "dstSharePct": 0,
      "hourFlipInDstPct": 0,
      "hourFlipOutDstPct": 7.4,
      "correctionRange": [
        -7,
        24
      ]
    },
    {
      "key": "ho_chi_minh",
      "en": "Ho Chi Minh City",
      "zh": "胡志明市",
      "tz": "Asia/Ho_Chi_Minh",
      "lon": 106.7,
      "group": "asia",
      "hourFlipPct": 7.1,
      "hourFlipRange": [
        7.1,
        7.1
      ],
      "dayFlipPct": 0.6,
      "dstSharePct": 0,
      "hourFlipInDstPct": 0,
      "hourFlipOutDstPct": 7.1,
      "correctionRange": [
        -8,
        23
      ]
    },
    {
      "key": "taipei",
      "en": "Taipei",
      "zh": "台北",
      "tz": "Asia/Taipei",
      "lon": 121.56,
      "group": "china",
      "hourFlipPct": 6.9,
      "hourFlipRange": [
        6.9,
        6.9
      ],
      "dayFlipPct": 0.6,
      "dstSharePct": 0,
      "hourFlipInDstPct": 0,
      "hourFlipOutDstPct": 6.9,
      "correctionRange": [
        -8,
        23
      ]
    }
  ]
}
