public static Lunar SolarToLunar(Solar solar) { var lunar = new Lunar(); int index = solar.solarYear - solar_1_1[0]; int data = (solar.solarYear << 9) | (solar.solarMonth << 5) | (solar.solarDay); int solar11 = 0; if (solar_1_1[index] > data) { index--; } solar11 = solar_1_1[index]; int y = GetBitInt(solar11, 12, 9); int m = GetBitInt(solar11, 4, 5); int d = GetBitInt(solar11, 5, 0); long offset = SolarToInt(solar.solarYear, solar.solarMonth, solar.solarDay) - SolarToInt(y, m, d); int days = lunar_month_days[index]; int leap = GetBitInt(days, 4, 13); int lunarY = index + solar_1_1[0]; int lunarM = 1; int lunarD = 1; offset += 1; for (int i = 0; i < 13; i++) { int dm = GetBitInt(days, 1, 12 - i) == 1 ? 30 : 29; if (offset > dm) { lunarM++; offset -= dm; } else { break; } } lunarD = (int) (offset); lunar.lunarYear = lunarY; lunar.lunarMonth = lunarM; lunar.isleap = false; if (leap != 0 && lunarM > leap) { lunar.lunarMonth = lunarM - 1; if (lunarM == leap + 1) { lunar.isleap = true; } } lunar.lunarDay = lunarD; return lunar; }
public void test2() { Solar solar = new Solar(2021, 1, 15); Lunar lunar = solar.getLunar(); Assert.AreEqual("雉始雊", lunar.getWuHou(), solar.toString()); }
public void test3() { Solar solar = new Solar(2017, 1, 5); Lunar lunar = solar.getLunar(); Assert.AreEqual("先胜", lunar.getLiuYao(), lunar.toString()); }
public void test4() { Solar solar = new Solar(2020, 4, 10); Lunar lunar = solar.getLunar(); Assert.AreEqual("田鼠化为鴽", lunar.getWuHou(), solar.toString()); }
public void TestSolarClock() { var chandigarh = new double[] { 30.7333, 76.7794 }; var pune = new double[] { 18.5204, 73.8567 }; SolarClock sc = new DateTime(2016, 4, 1).SolarClock(chandigarh[0], chandigarh[1], 5.5, true); //since this is astronomical Debug.WriteLine(String.Format("Sunrise would be at {0}", sc.sunrise)); Debug.WriteLine(String.Format("Sunset would be at {0}", sc.sunset)); Debug.WriteLine(String.Format("Total duration of the day woudl be {0}", sc.daylength)); Debug.WriteLine(String.Format("Solar noon would be at {0}", sc.noon)); Debug.WriteLine(String.Format("Julian day would be {0}", sc.julian)); Debug.WriteLine(String.Format("Solar declination would be {0}", sc.declination)); Debug.WriteLine(""); Debug.WriteLine(""); Debug.WriteLine(String.Format("We are now outputting the vedic solar clock ")); sc = Solar.VedicShuddhi(new DateTime(2016, 4, 1).SolarClock(chandigarh[0], chandigarh[1], 5.5, false)); Debug.WriteLine(String.Format("Sunrise would be at {0}", sc.sunrise)); Debug.WriteLine(String.Format("Sunset would be at {0}", sc.sunset)); Debug.WriteLine(String.Format("Total duration of the day woudl be {0}", sc.daylength)); Debug.WriteLine(String.Format("Solar noon would be at {0}", sc.noon)); Debug.WriteLine(String.Format("Julian day would be {0}", sc.julian)); Debug.WriteLine(String.Format("Solar declination would be {0}", sc.declination)); }
protected void Find_FinancialPosInfo(int KhaznaId) { MySolar = new Solar(); MySolar = db.Solar.Where(item => item.KhaznaBankID == KhaznaId).FirstOrDefault(); if (MySolar != null) { FinancialPos.Checked = true; SolarRowID.Visible = true; // Solar Part Info CarsListTxt.SelectedValue = MySolar.CarID.ToString(); DriverListTxt.SelectedValue = MySolar.DriverID.ToString(); LastReadTxt.Text = MySolar.LastReading.ToString(); CurrentReadTxt.Text = MySolar.CurrentReading.ToString(); SolarTotalTxt.Text = MySolar.Total.ToString(); SolarQtyTxt.Text = MySolar.SolarQty.ToString(); AverageTxt.Text = MySolar.Average.ToString(); DistanceTxt.Text = MySolar.Distance.ToString(); Notes.InnerText = MySolar.Notes.ToString(); SolarTypeDrop.SelectedValue = MySolar.ServiceID.ToString(); } else { AddErrorTxt.ForeColor = System.Drawing.Color.Red; AddErrorTxt.Text = "حدث خطاء اثناء البحث عن حركة السولار "; } }
public string AddSolarObject(int ID) { // علشان يعمل ابديت للقديم في حالة في قديم لو مفيش يضيف var oldSolarItem = new Solar(); MySolar = new Solar(); oldSolarItem = db.Solar.Where(item => item.KhaznaBankID == ID).FirstOrDefault(); if (oldSolarItem != null) { MySolar = oldSolarItem; } MySolar.CarID = int.Parse(CarsListTxt.SelectedValue); MySolar.DriverID = int.Parse(DriverListTxt.SelectedValue); MySolar.LastReading = Math.Round(float.Parse(LastReadTxt.Text), 2); MySolar.CurrentReading = Math.Round(float.Parse(CurrentReadTxt.Text), 2); MySolar.Date = DateTime.Parse(ReceivedDate.Text, CultureInfo.CreateSpecificCulture("ar-EG")); MySolar.Total = decimal.Parse(SolarTotalTxt.Text); MySolar.SolarQty = Math.Round(float.Parse(SolarQtyTxt.Text), 2); MySolar.Average = Math.Round(float.Parse(AverageTxt.Text), 2); MySolar.Distance = Math.Round(float.Parse(DistanceTxt.Text), 2); MySolar.Notes = Notes.InnerText; MySolar.ServiceID = int.Parse(SolarTypeDrop.SelectedValue); MySolar.KhaznaBankID = ID; try { db.Solar.AddOrUpdate(MySolar); db.SaveChanges(); return("Solar Added successfully"); } catch (Exception e) { return(""); } }
public void test3() { Solar solar = new Solar(2017, 1, 5); Lunar lunar = solar.getLunar(); Assert.AreEqual("雁北乡", lunar.getWuHou(), solar.toString()); }
public static void Verify() { DateTime endDt = cnCalendar.MaxSupportedDateTime; for (DateTime dt = cnCalendar.MinSupportedDateTime; dt < endDt; dt = dt.AddDays(1)) { Lunar ld = LunarSolarConverter.SolarToLunar(new Solar { solarYear = dt.Year, solarMonth = dt.Month, solarDay = dt.Day }); Lunar ld2 = DateTimeToLunar(dt); Solar sd = LunarSolarConverter.LunarToSolar(ld2); if (ld.lunarYear != ld2.lunarYear || ld.lunarMonth != ld2.lunarMonth || ld.lunarDay != ld2.lunarDay || ld.isleap != ld2.isleap) { Console.WriteLine("----" + dt.Year + "/" + dt.Month + "/" + dt.Day); Console.WriteLine("ms----" + ld2.lunarYear + "/" + ld2.lunarMonth + "/" + ld2.lunarDay + "/" + ld2.isleap); Console.WriteLine("ld----" + ld.lunarYear + "/" + ld.lunarMonth + "/" + ld.lunarDay + "/" + ld.isleap); } if (sd.solarYear != dt.Year || sd.solarMonth != dt.Month || sd.solarDay != dt.Day) { Console.WriteLine("----" + dt.Year + "/" + dt.Month + "/" + dt.Day); Console.WriteLine("sd----" + sd.solarYear + "/" + sd.solarMonth + "/" + sd.solarDay); } } }
public static CalendarDate Build(DateTime solarDate) { var dest = new CalendarDate() { SolarDate = solarDate, SolarDay = solarDate.Day }; Solar solar = new Solar(solarDate); Lunar lunar = solar.getLunar(); var jieQi = lunar.getCurrentJieQi(); if (jieQi != null) { dest.SolarTerm = jieQi.getName(); } dest.LunarDay = lunar.getDayInChinese(); dest.LunarMonth = lunar.getMonthInChinese(); var holidayList = HolidayUtil.getHolidaysByTarget(solarDate.Year, solarDate.Month, solarDate.Day); if (holidayList != null && holidayList.Count > 0) { var holidayStr = string.Join(" ", holidayList.Select(m => m.getName())); dest.Holiday = holidayStr; } return(dest); }
public void testLiuYue() { Solar solar = new Solar(1983, 2, 15, 20, 0, 0); Lunar lunar = solar.getLunar(); EightChar bazi = lunar.getEightChar(); Yun yun = bazi.getYun(0); DaYun[] daYun = yun.getDaYun(); String[] ganZhi = { "甲寅", "乙卯", "丙辰", "丁巳", "戊午", "己未", "庚申", "辛酉", "壬戌", "癸亥", "甲子", "乙丑" }; LiuNian[] liuNian = daYun[0].getLiuNian(); LiuYue[] l = liuNian[0].getLiuYue(); for (int i = 0, j = l.Length; i < j; i++) { LiuYue liuYue = l[i]; Assert.AreEqual(ganZhi[i], liuYue.getGanZhi()); } ganZhi = new String[] { "庚寅", "辛卯", "壬辰", "癸巳", "甲午", "乙未", "丙申", "丁酉", "戊戌", "己亥", "庚子", "辛丑" }; liuNian = daYun[4].getLiuNian(); l = liuNian[2].getLiuYue(); for (int i = 0, j = l.Length; i < j; i++) { LiuYue liuYue = l[i]; Assert.AreEqual(ganZhi[i], liuYue.getGanZhi()); } }
public void testGanZhi() { Solar solar = new Solar(1988, 2, 15, 23, 30, 0); Lunar lunar = solar.getLunar(); EightChar eightChar = lunar.getEightChar(); Assert.AreEqual("戊辰", eightChar.getYear(), "年柱"); Assert.AreEqual("甲寅", eightChar.getMonth(), "月柱"); Assert.AreEqual("辛丑", eightChar.getDay(), "日柱"); Assert.AreEqual("戊子", eightChar.getTime(), "时柱"); solar = new Solar(1988, 2, 15, 22, 30, 0); lunar = solar.getLunar(); eightChar = lunar.getEightChar(); Assert.AreEqual("戊辰", eightChar.getYear(), "年柱"); Assert.AreEqual("甲寅", eightChar.getMonth(), "月柱"); Assert.AreEqual("庚子", eightChar.getDay(), "日柱"); Assert.AreEqual("丁亥", eightChar.getTime(), "时柱"); solar = new Solar(1988, 2, 2, 22, 30, 0); lunar = solar.getLunar(); eightChar = lunar.getEightChar(); Assert.AreEqual("丁卯", eightChar.getYear(), "年柱"); Assert.AreEqual("癸丑", eightChar.getMonth(), "月柱"); Assert.AreEqual("丁亥", eightChar.getDay(), "日柱"); Assert.AreEqual("辛亥", eightChar.getTime(), "时柱"); }
public void testXun() { Solar solar = new Solar(2020, 11, 19, 0, 0, 0); Lunar lunar = solar.getLunar(); Assert.AreEqual("甲午", lunar.getYearXun()); }
public void test8() { Solar solar = new Solar(2020, 12, 11); Lunar lunar = solar.getLunar(); Assert.AreEqual("赤口", lunar.getLiuYao(), lunar.toString()); }
public void test1() { Solar solar = new Solar(2020, 4, 23); Lunar lunar = solar.getLunar(); Assert.AreEqual("萍始生", lunar.getWuHou(), solar.toString()); }
public void test4() { Solar solar = new Solar(2020, 4, 10); Lunar lunar = solar.getLunar(); Assert.AreEqual("友引", lunar.getLiuYao(), lunar.toString()); }
public void test8() { Solar solar = new Solar(2020, 12, 11); Lunar lunar = solar.getLunar(); Assert.AreEqual("鹖鴠不鸣", lunar.getWuHou(), solar.toString()); }
public void test6() { Solar solar = new Solar(2020, 6, 1); Lunar lunar = solar.getLunar(); Assert.AreEqual("麦秋至", lunar.getWuHou(), solar.toString()); }
/// <summary> /// 起运计算 /// </summary> private void computeStart() { JieQi prev = lunar.getPrevJie(); JieQi next = lunar.getNextJie(); Solar current = lunar.getSolar(); Solar start = forward ? current : prev.getSolar(); Solar end = forward ? next.getSolar() : current; int hourDiff = LunarUtil.getTimeZhiIndex(end.toYmdHms().Substring(11, 5)) - LunarUtil.getTimeZhiIndex(start.toYmdHms().Substring(11, 5)); DateTime endCalendar = new DateTime(end.getYear(), end.getMonth(), end.getDay(), 0, 0, 0, 0); DateTime startCalendar = new DateTime(start.getYear(), start.getMonth(), start.getDay(), 0, 0, 0, 0); int dayDiff = endCalendar.Subtract(startCalendar).Days; if (hourDiff < 0) { hourDiff += 12; dayDiff--; } int monthDiff = hourDiff * 10 / 30; int month = dayDiff * 4 + monthDiff; int day = hourDiff * 10 - monthDiff * 30; int year = month / 12; month = month - year * 12; this.startYear = year; this.startMonth = month; this.startDay = day; }
public void testXiaoYun() { Solar solar = new Solar(1983, 2, 15, 20, 0, 0); Lunar lunar = solar.getLunar(); EightChar bazi = lunar.getEightChar(); Yun yun = bazi.getYun(0); DaYun[] daYun = yun.getDaYun(); int[] years = { 1983, 1984, 1985, 1986, 1987, 1988 }; int[] ages = { 1, 2, 3, 4, 5, 6 }; String[] ganZhi = { "乙亥", "丙子", "丁丑", "戊寅", "己卯", "庚辰" }; XiaoYun[] l = daYun[0].getXiaoYun(); for (int i = 0, j = l.Length; i < j; i++) { XiaoYun xiaoYun = l[i]; Assert.AreEqual(years[i], xiaoYun.getYear()); Assert.AreEqual(ages[i], xiaoYun.getAge()); Assert.AreEqual(ganZhi[i], xiaoYun.getGanZhi()); } years = new int[] { 2029, 2030, 2031, 2032, 2033, 2034, 2035, 2036, 2037, 2038 }; ages = new int[] { 47, 48, 49, 50, 51, 52, 53, 54, 55, 56 }; ganZhi = new String[] { "辛酉", "壬戌", "癸亥", "甲子", "乙丑", "丙寅", "丁卯", "戊辰", "己巳", "庚午" }; l = daYun[5].getXiaoYun(); for (int i = 0, j = l.Length; i < j; i++) { XiaoYun xiaoYun = l[i]; Assert.AreEqual(years[i], xiaoYun.getYear()); Assert.AreEqual(ages[i], xiaoYun.getAge()); Assert.AreEqual(ganZhi[i], xiaoYun.getGanZhi(), years[i] + "年"); } }
public override void AddRecipes() { Nebula.AddRecipes(this); Solar.AddRecipes(this); Stardust.AddRecipes(this); Vortex.AddRecipes(this); }
public virtual Solar CreateSolar(ArchSolar obj) { Solar solar = new Solar(this, ++lastSolarID, obj); solars[solar.id] = solar; return solar; }
public void test1() { Solar solar = new Solar(2020, 3, 21); Assert.AreEqual("白羊", solar.getXingZuo(), solar.toYmd()); solar = new Solar(2020, 4, 19); Assert.AreEqual("白羊", solar.getXingZuo(), solar.toYmd()); }
public void test7() { Solar solar = new Solar(2021, 7, 5); Lunar lunar = solar.getLunar(); ShuJiu shuJiu = lunar.getShuJiu(); Assert.IsNull(shuJiu); }
public void test12() { Solar solar = new Solar(2021, 2, 19); Assert.AreEqual("双鱼", solar.getXingZuo(), solar.toYmd()); solar = new Solar(2021, 3, 20); Assert.AreEqual("双鱼", solar.getXingZuo(), solar.toYmd()); }
private void Awake() { if (Instance != null) { Destroy(Instance.gameObject); } Instance = this; }
public void testConvert() { Solar solar = new Solar(2020, 1, 23); Lunar lunar = solar.getLunar(); Assert.AreEqual("二〇一九年腊月廿九", lunar.ToString(), "com.nlf.calendar.Solar.getLunar 有错。"); Assert.AreEqual("2020-01-23", lunar.getSolar().ToString(), "com.nlf.calendar.Lunar.getSolar 有错。"); }
public void testBaZiDayXunKong() { Solar solar = new Solar(1990, 12, 23, 8, 37, 0); Lunar lunar = solar.getLunar(); EightChar eightChar = lunar.getEightChar(); Assert.AreEqual("子丑", eightChar.getDayXunKong()); }
public void test3() { Solar solar = new Solar(2020, 5, 21); Assert.AreEqual("双子", solar.getXingZuo(), solar.toYmd()); solar = new Solar(2020, 6, 21); Assert.AreEqual("双子", solar.getXingZuo(), solar.toYmd()); }
public void test2() { Solar solar = new Solar(2020, 4, 20); Assert.AreEqual("金牛", solar.getXingZuo(), solar.toYmd()); solar = new Solar(2020, 5, 20); Assert.AreEqual("金牛", solar.getXingZuo(), solar.toYmd()); }
public void test4() { Solar solar = new Solar(2020, 6, 22); Assert.AreEqual("巨蟹", solar.getXingZuo(), solar.toYmd()); solar = new Solar(2020, 7, 22); Assert.AreEqual("巨蟹", solar.getXingZuo(), solar.toYmd()); }
public void test11() { Solar solar = new Solar(2021, 1, 20); Assert.AreEqual("水瓶", solar.getXingZuo(), solar.toYmd()); solar = new Solar(2021, 2, 18); Assert.AreEqual("水瓶", solar.getXingZuo(), solar.toYmd()); }
public void PushStatus(Solar.Status data) { if (data.Timestamp == 0) data.Timestamp = UnixTimeNow(); List<object> serialized_data = this.to_list(data); lock (data_lock) { JsonDb db = this.DataSource.GetConnection(); db.data.Add(serialized_data); ++db.count; Debug.WriteLine("DB:\t\tPushStatus: success"); } }
public SolarControllerHuman(Solar solar) : base(solar) { }
public static Solar SolarFromInt(long g) { long y = (10000*g + 14780)/3652425; long ddd = g - (365*y + y/4 - y/100 + y/400); if (ddd < 0) { y--; ddd = g - (365*y + y/4 - y/100 + y/400); } long mi = (100*ddd + 52)/3060; long mm = (mi + 2)%12 + 1; y = y + (mi + 2)/12; long dd = ddd - (mi*306 + 5)/10 + 1; var solar = new Solar(); solar.solarYear = (int) y; solar.solarMonth = (int) mm; solar.solarDay = (int) dd; return solar; }
public SolarControlPanel(Solar solar) { this.solar = solar; }
public void HandleUserInput(Solar.Gear gear, Solar.Signals sigs) { // TODO }
public SolarController(Solar solar) { this.solar = solar; }