虽然没有确切的文字记载干支的来历,但我们可以根据现有资料进行推导。《易学原理与大六壬应用》一书解释如下:根据现代天文学知识,我们知道周天二十八星宿是由恒星组成的,天文学上恒星十分稳定,相对位置几千几万年甚至更长时间内都保持不变,对地的影响也是相对稳定的,而我们地球及其他太阳系的行星不断的围绕太阳公转,而整个太阳系则是相对于北极星(即紫微星)位置不变的在银河系中做螺旋运转,这就形成了因日月五星运行而造成天星之间位置关系的改变,进而改变了特定星宿对地球及地上万事万物的影响,所以古人通过夜观天象来预测吉凶,《开元占经》就是古占星学著作,而七政四余和紫微斗数就是延伸出来的古星命学。
夜观星象受时间位置等诸多不利因素制约,所以人们试图寻找更为简便的方法进行占卜,地支就是在这种情况下被利用起来了。根据历法知识我们知道,月的划分是根据月亮的一次圆缺循环为标准,分为大小月,大月30天,小月29天,一年十二个月,又加以闰月补其不足。所以天文上把黄道平面划分为十二宫,以日躔过宫划分十二个月。所以古代把黄道十二宫以地支命名,十二宫又与二十八宿相对应,即子宫有女、虚、危三宿;丑宫有斗、牛二宿;寅宫有尾、箕二宿;卯宫有氐、房、心三宿;辰宫有角、亢二宿;巳宫有翼、轸二宿;午宫有柳、星、张三宿;未宫有井、鬼二宿;申宫有觜、参二宿;酉宫有胃、昴、毕三宿;戌宫有奎、娄二宿;亥宫有室、壁二宿。所以,二十八宿的天文象意是我们干支学中地支取象的象意来源,十二地支中有藏有二十八星宿,其意义也是来源于此。
换一种方式解释,因为干支是用来计时的,我们可以把黄道十二宫平面想象成钟表的表盘,以地球为表盘中心,十二宫就是表盘的刻度指示,日月五星相当于七个指针,运行在黄道十二宫这个大表盘之上,形成一个巨大的时钟。其中,太阳就是“年”指针,地球绕太阳运行一周回到原点就是一年的时间;月亮就是“月”指针,月亮绕地球运行一周回到原点就是一个月的时间;二十四节气是跟太阳过宫有直接联系,而和月球运转没有直接关系,所以造成了历法上月令和节气的时间差,因此我们干支学的月令是根据节气而定,即跟日躔过宫相一致。我们再看两个最慢的指针,即太阳系中两个最重要的行星木星(岁星)和土星(镇星)交会的周期,需要20年,即一个运;如果两星要在同一个宫位上(比如子宫)交会的话,则需要经过60年,即一元。同理,日月五星重合在同一宫位的周期,则需要大致180年左右,即一个正元;如果把日月五星重合的位置再具体化,由夹角30度的一个宫位变为夹角12.8度的一个星宿的宿位,则需要大致540年才能重合一次,即一个大元。这个假设与实际天文学计算有出入,但如此理解起来就比较容易,也更容易把时间和空间结合起来,因为十二宫即十二地支,所代表的是空间上的十二方位;钟表的表盘代表了宇宙的能量场,即相对静止的天地的气场;日月五星的运行搅动了原本相对静止的能量场,日月五星在十二宫的位置分布,就代表了当前时间内各星对各宫的影响力大小,即当前时间空间内天体能量的分布状态,其表达形式就是甲子、乙丑、丙寅、丁卯等。
上面我们假想的时钟只有年月指针,没有日时指针,这就需要我们把地球自转的因素加以考虑。地球自转周期为一天,即24小时,在地球自转过程中,日月五星对地球同一地点的影响时时在发生着变化,地球上同一地点相对于日月五星运转了一周;地球一天时间内公转角度向前行进约1度,也就是相对于日月五星的空间位置变化为1度,周而复始,日复一日。因此,地球上同一地点的天体能量分布以每天1度的位置而产生变化,即产生了同一地点能量分布逐日逐时变化的结果,这就是日和时的甲子、乙丑、丙寅、丁卯等等。