1 年柱
判断当前日期是否超过本年的立春 未超过年份-1 已超过按当前年份计算
2月柱
当前日期是否超过当月的第一个节气 未超过-1 超过当前月份计算
节气对日柱时柱没影响。
获取某年某月第一个节气的准确日期
private int sTerm(int y, int n) { int[] sTermInfo = new int[]{0, 21208, 42467, 63836, 85337, 107014, 128867, 150921, 173149, 195551, 218072, 240693, 263343, 285989, 308563, 331033, 353350, 375494, 397447, 419210, 440795, 462224, 483532, 504758}; Calendar cal = Calendar.getInstance(); cal.set(1900, 0, 6, 2, 5, 0); long temp = cal.getTime().getTime(); cal.setTime(new Date((long) ((31556925974.7 * (y - 1900) + sTermInfo[n] * 60000L) + temp))); int a = cal.get(Calendar.DAY_OF_MONTH); return a; }