|
|
| (未显示同一用户的4个中间版本) |
| 第1行: |
第1行: |
| <div id="bazi-app-container">
| | == 资产负载率 == |
| <style>
| | <math>\text{资产负载率} = \frac{\text{有息负债总额}}{\text{资产总额}} \times 100\%</math> |
| .bz-box {
| |
| background: #ffffff;
| |
| border: 2px solid #b32424;
| |
| padding: 25px;
| |
| border-radius: 12px;
| |
| max-width: 550px;
| |
| margin: 20px auto;
| |
| font-family: "PingFang SC", "Microsoft YaHei", sans-serif;
| |
| box-shadow: 0 4px 15px rgba(0,0,0,0.1);
| |
| }
| |
| .bz-title {
| |
| text-align: center;
| |
| color: #b32424;
| |
| margin-bottom: 20px;
| |
| font-size: 1.5em;
| |
| border-bottom: 1px dashed #ccc;
| |
| padding-bottom: 10px;
| |
| }
| |
| .bz-row { margin-bottom: 15px; text-align: center; }
| |
| .bz-input {
| |
| border: 1px solid #aaa;
| |
| padding: 6px;
| |
| border-radius: 4px;
| |
| width: 60px;
| |
| margin: 0 5px;
| |
| }
| |
| .bz-btn {
| |
| background: #b32424;
| |
| color: white;
| |
| border: none;
| |
| padding: 10px 30px;
| |
| border-radius: 20px;
| |
| cursor: pointer;
| |
| font-size: 1em;
| |
| transition: 0.3s;
| |
| }
| |
| .bz-btn:hover { background: #d32f2f; transform: scale(1.05); }
| |
| .bz-table {
| |
| width: 100%;
| |
| margin-top: 25px;
| |
| border-collapse: collapse;
| |
| display: none;
| |
| }
| |
| .bz-table th { background: #fdf2f2; color: #666; font-weight: normal; padding: 10px; border: 1px solid #eee; }
| |
| .bz-table td {
| |
| padding: 20px 10px;
| |
| border: 1px solid #eee;
| |
| text-align: center;
| |
| font-size: 1.8em;
| |
| font-weight: bold;
| |
| color: #333;
| |
| }
| |
| .wuxing-tag { font-size: 0.4em; display: block; color: #888; margin-top: 5px; }
| |
| </style>
| |
|
| |
|
| <div class="bz-box">
| | ==== 预估未来 ==== |
| <div class="bz-title">☯ 生辰八字在线排盘</div>
| |
| <div class="bz-row">
| |
| <input type="number" id="y" class="bz-input" value="1995"> 年
| |
| <input type="number" id="m" class="bz-input" value="8"> 月
| |
| <input type="number" id="d" class="bz-input" value="15"> 日
| |
| <input type="number" id="h" class="bz-input" value="12"> 时
| |
| </div>
| |
| <div class="bz-row">
| |
| <button class="bz-btn" onclick="runBazi()">立即测算</button>
| |
| </div>
| |
|
| |
|
| <table id="resultTable" class="bz-table">
| | ==== <math>\text{资产负载率} = \frac{\text{初期总负债+新增负债-偿还负债}}{\text{初期资产总额+预估出货额*(1+增值税率)}} \times 100\%</math> ==== |
| <tr><th>年柱 (根)</th><th>月柱 (苗)</th><th>日柱 (花)</th><th>时柱 (果)</th></tr>
| |
| <tr>
| |
| <td id="r-year"></td>
| |
| <td id="r-month"></td>
| |
| <td id="r-day"></td>
| |
| <td id="r-hour"></td>
| |
| </tr>
| |
| </table>
| |
| </div>
| |
|
| |
|
| <script>
| | == 刚性负载率 == |
| function runBazi() {
| | <math>\text{刚性负载率} = \frac{\text{有息负债总额(短期借款+一年内到期非流动性负载+长期借款+应付债券)}}{\text{资产总额}} \times 100\%</math> |
| const year = parseInt(document.getElementById('y').value);
| |
| const month = parseInt(document.getElementById('m').value);
| |
| const day = parseInt(document.getElementById('d').value);
| |
| const hour = parseInt(document.getElementById('h').value);
| |
|
| |
|
| const stems = ["甲", "乙", "丙", "丁", "戊", "己", "庚", "辛", "壬", "癸"];
| | ==== 预估未来 ==== |
| const branches = ["子", "丑", "寅", "卯", "辰", "巳", "午", "未", "申", "酉", "戌", "亥"];
| | <math>\text{刚性负载率} = \frac{\text{初期有息负债+新增融资-到期偿还额}}{\text{初期资产总额+(预估出货*预估毛利率)-期间费用-预估分红/抽资}} \times 100\%</math> |
|
| |
|
| // 1. 日柱算法 (JD)
| | == 应收账款周转率 == |
| let py = year, pm = month;
| | <math>\text{应收账款周转率} = \frac{\text{营业收入(预测出货额)}}{\text{平均应收账款余额}}</math> |
| if (month <= 2) { py--; pm += 12; }
| |
| let b = 2 - Math.floor(py/100) + Math.floor(Math.floor(py/100)/4);
| |
| let jd = Math.floor(365.25*(py+4716)) + Math.floor(30.6001*(pm+1)) + day + b - 1524.5;
| |
| let dayIdx = (jd + 1) % 60;
| |
|
| |
|
| // 2. 节气简易计算
| | == 存货周期率 == |
| const getTermDay = (y, m) => {
| | <math>\text{存货周转率} = \frac{\text{营业成本(COGS)}}{\text{平均存货余额}}</math> |
| const base = [0, 6.11, 4.15, 5.56, 5.02, 5.65, 6.14, 7.53, 7.83, 8, 8.43, 7.54, 7.45];
| |
| return Math.floor((y % 100) * 0.2422 + base[m] + (y >= 2000 ? -0.5 : 0)) - Math.floor((y % 100 - 1) / 4);
| |
| };
| |
|
| |
|
| // 3. 计算四柱
| | == 事业资产回报率 == |
| let gzYearVal = (month < 2 || (month === 2 && day < getTermDay(year, 2))) ? year - 1 : year;
| | <math>\text{事业资产回报率} = \frac{\text{息税前利润(EBIT)}}{\text{平均资产总额}} \times 100\%</math> |
| let yearIdx = (gzYearVal - 3) % 60;
| |
| if (yearIdx <= 0) yearIdx += 60;
| |
| | |
| let monthOrder = (day < getTermDay(year, month)) ? month - 1 : month;
| |
| if (monthOrder < 1) monthOrder = 12;
| |
| let monthGanIdx = (((yearIdx % 10 || 10) % 5) * 2 + monthOrder) % 10 || 10;
| |
| let monthZhiIdx = (monthOrder + 2) % 12 || 12;
| |
| | |
| let hourZhiIdx = Math.floor((hour + 1) / 2) % 12 + 1;
| |
| let dayGanIdx = dayIdx % 10 || 10;
| |
| let hourGanIdx = ((dayGanIdx % 5) * 2 + hourZhiIdx - 2) % 10 || 10;
| |
| | |
| const formatGZ = (g, z) => stems[g-1] + branches[z-1];
| |
| | |
| // 4. 显示
| |
| document.getElementById('r-year').innerHTML = formatGZ(yearIdx % 10 || 10, yearIdx % 12 || 12);
| |
| document.getElementById('r-month').innerHTML = formatGZ(monthGanIdx, monthZhiIdx);
| |
| document.getElementById('r-day').innerHTML = formatGZ(dayGanIdx, dayIdx % 12 || 12);
| |
| document.getElementById('r-hour').innerHTML = formatGZ(hourGanIdx, hourZhiIdx);
| |
| document.getElementById('resultTable').style.display = 'table';
| |
| }
| |
| </script>
| |
| </div> | |