private void showClockAndSunMoonInfo() { if (this.Cal_pause.Checked) { return; } //this.timerTick.Enabled = false; // C#: Debug //this.Cal_pause.Checked = true; // C#: Debug DateTime nowDT = DateTime.Now; // 显示太阳月亮坐标 double jd = LunarHelper.NowUTCmsSince19700101(nowDT) / 86400000d - 10957.5; //J2000起算的儒略日数 //jd = 3391.31877640; // C#: Debug jd += JD.deltatT2(jd); this.smc.calc(jd, JWdata.J, JWdata.W, 0); //传入力学时间(J2000.0起算) this.Cal_zb.Text = smc.toText(1); // 显示实时时间 this.lblLocalClock.Text = nowDT.ToLocalTime().ToString(); string rg = ""; double h = JWdata.SQTimeDifference; string v = JWdata.DaylightInfo; jd = LunarHelper.NowUTCmsSince19700101(nowDT) / 86400000d - 10957.5 + h / 24; if (v.Length > 0) { double y1 = JD.Y, y2 = y1; //该时所在年份 double m1 = double.Parse(v.Substring(0, 2)), m2 = double.Parse(v.Substring(5, 2)); if (m2 < m1) { y2++; } //nnweek(y,m,n,w)求y年m月第n个星期w的jd double J1 = JD.nnweek(y1, m1, double.Parse(v.Substring(2, 1)), double.Parse(v.Substring(3, 1))) - 0.5 - LunarHelper.J2000 + (v[4] - 97) / 24d; double J2 = JD.nnweek(y2, m2, double.Parse(v.Substring(7, 1)), double.Parse(v.Substring(8, 1))) - 0.5 - LunarHelper.J2000 + (v[9] - 97) / 24d; if (jd >= J1 && jd < J2) { jd += 1 / 24d; rg = "¤"; } //夏令时 } JD.setFromJD(jd + LunarHelper.J2000); this.lblSQClock.Text = JD.D + "日 " + JD.h + ":" + JD.m + ":" + LunarHelper.int2(JD.s) + rg; //与了与clock1同步,秒数取整而不四舍五入 }