public static void ExportPngYear(GCLocation calLocation, string dir, string locationFileName, int currentYear) { Size imageSize = new Size(1280, 1024); using (Bitmap b = new Bitmap(imageSize.Width, imageSize.Height)) { using (Graphics g = Graphics.FromImage(b)) { CalendarTableDrawer ctd = new CalendarTableDrawer(); TResultCalendar rc = new TResultCalendar(); rc.CalculateCalendar(calLocation, new GregorianDateTime(currentYear, 1, 1), 366); for (int i = 1; i <= 12; i++) { g.Clear(Color.White); ctd.Draw(g, imageSize, rc, currentYear, i); b.Save(Path.Combine(dir, string.Format("{0}-{1}-{2:00}.png", locationFileName, currentYear, i)), ImageFormat.Png); } } } string text = string.Format("<html><head><title>{0} {1}</title></head><body>", locationFileName, currentYear); StringBuilder sb = new StringBuilder(); sb.Append(text); for (int i = 1; i < 13; i++) { sb.AppendFormat("<p><img src=\"{0}-{1}-{2:00}.png\"></p>", locationFileName, currentYear, i); } sb.AppendFormat("</body></html>"); File.WriteAllText(Path.Combine(dir, string.Format("{0}-{1}.html", locationFileName, currentYear)), sb.ToString()); }
private void buttonCalcEkadasi_Click(object sender, EventArgs e) { TResultCalendar cal = new TResultCalendar(); cal.CalculateCalendar(GCGlobal.myLocation, new GregorianDateTime(int.Parse(textBox1.Text), comboBox1.SelectedIndex + 1, 1), 31); List <VAISNAVADAY> le = new List <VAISNAVADAY>(); for (int i = 0; i < 31; i++) { VAISNAVADAY vd = cal.GetDay(i); if (vd.nFastID == FastType.FAST_EKADASI) { LBVD lb = new LBVD(); lb.vd = vd; listBox1.Items.Add(lb); } } if (listBox1.Items.Count > 0) { listBox1.SelectedIndex = 0; } panel1.Visible = true; }
private void eventMapOverlayView1_OnClick(object o, EventmapOverlayEventArgs e) { GregorianDateTime dt = new GregorianDateTime(SelectedDate); dt.PreviousDay(); dt.PreviousDay(); GCLocation loc = new GCLocation(); TTimeZone tz = new TTimeZone(); loc.Latitude = 0; loc.Longitude = 0; loc.TimeZone = tz; TResultCalendar cal = new TResultCalendar(); cal.EkadasiOnly = true; VAISNAVADAY vd = GetCalcDay(dt, loc, cal, e.Longitude, e.Latitude); string str = string.Format("{0}, sunrise: {1}, longitude: {2}, latitude: {3}" , vd.date.ToString(), vd.astrodata.sunRise.ToLongTimeString() , e.Longitude, e.Latitude); labelStatus.Text = str; }
private void FunctionCalcBoundariesSync(Quadrant map, GregorianDateTime date) { GCLog.Write("Ekadasi Boundaries Calculation START"); RootArray = null; CalculationFinished = false; GregorianDateTime dt = new GregorianDateTime(date); dt.PreviousDay(); dt.PreviousDay(); GCLocation loc = new GCLocation(); TTimeZone tz = new TTimeZone(); loc.Latitude = 0; loc.Longitude = 0; loc.TimeZone = tz; TResultCalendar cal = new TResultCalendar(); cal.EkadasiOnly = true; List <Quadrant> quandrantList = new List <Quadrant>(); quandrantList.Add(map); QuadrantArray qa; map = null; int count = 0, maxCount = 2000; while (quandrantList.Count > 0) { map = quandrantList[0]; quandrantList.RemoveAt(0); if (stopRequested) { break; } map.Details = CalculateQuadrantArray(map, dt, loc, cal, quandrantList); if (RootArray == null) { RootArray = map.Details; } // for testing count++; if (count >= maxCount) { break; } } CalculationFinished = true; GCLog.Write("Ekadasi Boundaries Calculation END"); StopMethodDelegate stopMethod = new StopMethodDelegate(PerformeStop); this.Invoke(stopMethod); }
public static void ExportTableCalendar(TResultCalendar calendar, int printYearStart, int printYearEnd, string folderPath) { PdfDocument doc = new PdfDocument(); CalendarPdfDrawer ctd = new CalendarPdfDrawer(); for (int year = printYearStart; year <= printYearEnd; year++) { for (int month = 1; month <= 12; month++) { PdfPage page = doc.AddPage(); page.Size = PdfSharp.PageSize.A4; page.Orientation = PdfSharp.PageOrientation.Landscape; XGraphics gfx = XGraphics.FromPdfPage(page); SizeF pageSizeF = gfx.PageSize.ToSizeF(); ctd.PaddingTop = Convert.ToInt32(pageSizeF.Height / 20); ctd.PaddingBottom = Convert.ToInt32(pageSizeF.Height / 20); ctd.PaddingLeft = Convert.ToInt32(pageSizeF.Width / 20); ctd.PaddingRight = Convert.ToInt32(pageSizeF.Width / 20); ctd.Draw(gfx, gfx.PageSize, calendar, year, month); } } doc.Save(folderPath); }
private void FetchCalendarDataSync(CDVDataTarget requestor, CDVDocumentCell data) { int i_year, i_month; string[] sa = data.Key.Split('-'); if (sa.Length != 2 || !int.TryParse(sa[0], out i_year) || !int.TryParse(sa[1], out i_month)) { return; } if (i_month < 2) { data.PrevKey = string.Format("{0}-{1}", i_year - 1, 12); } else { data.PrevKey = string.Format("{0}-{1}", i_year, i_month - 1); } if (i_month > 11) { data.NextKey = string.Format("{0}-{1}", i_year + 1, 1); } else { data.NextKey = string.Format("{0}-{1}", i_year, i_month + 1); } TResultCalendar rc = new TResultCalendar(calLocation, i_year, i_month); DocCalenarData docdata = new DocCalenarData(); docdata.Calendar = rc; docdata.Month = i_month; docdata.Year = i_year; CDVPara para = FormatCalendarLayout(requestor, docdata); data.UserData = docdata; data.Item = para; AsyncTask2 at2 = new AsyncTask2(requestor.OnCDVDataAvailable); while (!this.IsHandleCreated) { System.Threading.Thread.Sleep(100); } this.Invoke(at2, data); // then return calculated data //requestor.OnCDVDataAvailable(data); }
private void printToolStripMenuItem_Click(object sender, EventArgs e) { if (p_mode == 0) { if (Controller != null) { Controller.ExecuteMessage("printContent", m_calendar); } } else if (p_mode == 2) { PrintDialog pd = new PrintDialog(); if (pd.ShowDialog() != DialogResult.OK) { return; } DialogResult dr = MessageBox.Show("Do you want to print a whole year ?", "Time Period", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question); if (dr == DialogResult.Yes) { printMonthStart = 1; printMonthEnd = 12; printYearStart = calendarTableView1.CurrentYear; printYearEnd = printYearStart; } else if (dr == DialogResult.No) { printMonthEnd = printMonthStart = calendarTableView1.CurrentMonth; printYearStart = printYearEnd = calendarTableView1.CurrentYear; } else { printMonthStart = printMonthEnd = -1; printYearStart = printYearEnd = -1; } if (printYearStart > 0) { m_calendarToPrint = new TResultCalendar(); GregorianDateTime startDate = new GregorianDateTime(printYearStart, printMonthStart, 1); GregorianDateTime endDate = new GregorianDateTime(printYearEnd, printMonthEnd, 1); m_calendarToPrint.CalculateCalendar(calLocation, startDate, endDate.GetJulianInteger() - startDate.GetJulianInteger() + 31); printDocumentTable.PrinterSettings = pd.PrinterSettings; printDocumentTable.DocumentName = string.Format("{0}_{1}", calLocation.Title, printYearStart); printDocumentTable.Print(); } } }
public static void ExportPng(GCLocation calLocation, string directory, string locname, int year, int month) { using (Bitmap b = new Bitmap(1280, 1024)) { using (Graphics g = Graphics.FromImage(b)) { g.Clear(Color.White); CalendarTableDrawer ctd = new CalendarTableDrawer(); TResultCalendar rc = new TResultCalendar(); rc.CalculateCalendar(calLocation, new GregorianDateTime(year, month, 1), 32); ctd.Draw(g, new Size(1280, 1024), rc, year, month); } b.Save(Path.Combine(directory, string.Format("{0}-{1}-{2:00}.png", locname, year, month)), ImageFormat.Png); } }
public VAISNAVADAY GetCalcDay(GregorianDateTime dt, GCLocation loc, TResultCalendar cal, double longitude, double latitude) { loc.SetCoordinates(longitude, latitude); cal.CalculateCalendar(loc, dt, 5); for (int i = 0; i < 5; i++) { VAISNAVADAY vd = cal.GetDay(i); if (vd.nFastID == FastType.FAST_EKADASI) { return(vd); } } return(null); }
/// <summary> /// If newText is changed during the processing of this method /// then running of this method is aborted and new search starts in backSearch_DoWork /// by assigning newText value into currentText /// </summary> private void doSearch(string text, CancellationTokenSource tokenSource) { TResultCalendar cal = new TResultCalendar(); string dayText; cal.CalculateCalendar(EarthLocation, new GregorianDateTime(), 700); StringBuilder results3 = new StringBuilder(); GSScript script = new GSScript(); script.readTextTemplate(TResultCalendar.getPlainDayTemplate()); GSExecutor exec = new GSExecutor(); for (int i = 0; i < cal.m_PureCount; i++) { VAISNAVADAY vd = cal.GetDay(i); exec.SetVariable("app", GCUserInterface.Shared); exec.SetVariable("location", EarthLocation); exec.SetVariable("pvd", vd); //dayText = TResultCalendar.formatPlainTextDay(vd); exec.resetOutput(); exec.ExecuteElement(script); dayText = exec.getOutput(); //Debugger.Log(0, "", "SEARCH IN TEXT: " + dayText + "\n\n"); if (dayText.IndexOf(text, 0, StringComparison.CurrentCultureIgnoreCase) >= 0) { results3.AppendLine(); results3.AppendLine(dayText); } if (tokenSource.IsCancellationRequested) { return; } } if (!tokenSource.IsCancellationRequested) { FinalizeDelegate dlg = new FinalizeDelegate(setRichText); richTextBox1.BeginInvoke(dlg, results3.ToString()); ctTask = null; ctPrev = null; } }
public static void ExportTableCalendar(GCLocation calLocation, int printYearStart, int printYearEnd, string folderPath) { TResultCalendar m_calendarToPrint = new TResultCalendar(); GregorianDateTime startDate = new GregorianDateTime(printYearStart, 1, 1); GregorianDateTime endDate = new GregorianDateTime(printYearEnd, 12, 1); m_calendarToPrint.CalculateCalendar(calLocation, startDate, endDate.GetJulianInteger() - startDate.GetJulianInteger() + 31); string DocumentName = string.Format("{0}_{1}", calLocation.Title, printYearStart); PdfDocument doc = new PdfDocument(); CalendarPdfDrawer ctd = new CalendarPdfDrawer(); for (int year = printYearStart; year <= printYearEnd; year++) { for (int month = 1; month <= 12; month++) { PdfPage page = doc.AddPage(); page.Size = PdfSharp.PageSize.A4; page.Orientation = PdfSharp.PageOrientation.Landscape; XGraphics gfx = XGraphics.FromPdfPage(page); SizeF pageSizeF = gfx.PageSize.ToSizeF(); ctd.PaddingTop = Convert.ToInt32(pageSizeF.Height / 20); ctd.PaddingBottom = Convert.ToInt32(pageSizeF.Height / 20); ctd.PaddingLeft = Convert.ToInt32(pageSizeF.Width / 20); ctd.PaddingRight = Convert.ToInt32(pageSizeF.Width / 20); ctd.Draw(gfx, gfx.PageSize, m_calendarToPrint, year, month); } } doc.Save(folderPath); }
public void PrintPdfYear(TResultCalendar loc, int year, string fileName) { GCPrintService.ExportTableCalendar(loc, year, year, fileName); }
private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e) { SetProgressValue locdel = new SetProgressValue(SetLocationsProgressValue); SetProgressValue yrdel = new SetProgressValue(SetYearsProgressvalue); List <FileRec> files = new List <FileRec>(); HashSet <string> countries = new HashSet <string>(); GCDisplaySettings stateDetailedText = new GCDisplaySettings("Detailed Calendar"); GCDisplaySettings stateText = new GCDisplaySettings("Brief Calendar"); GCDisplaySettings stateOrig = GCDisplaySettings.Current; try { // stateText.Clear(); stateText.setValue(GCDS.CAL_DST_CHANGE, 1); stateText.setValue(GCDS.CAL_EKADASI_PARANA, 1); stateText.setValue(GCDS.CAL_FEST_0, 1); stateText.CalHeaderType = 1; stateText.setValue(GCDS.CAL_MASA_CHANGE, 1); stateText.setValue(GCDS.CAL_MOON_LONG, 0); stateText.setValue(GCDS.CAL_MOON_RISE, 0); stateText.setValue(GCDS.CAL_MOON_SET, 0); stateText.setValue(GCDS.CAL_SANKRANTI, 0); stateText.setValue(GCDS.CAL_SUN_LONG, 0); stateText.setValue(GCDS.CAL_SUN_RISE, 0); stateText.setValue(GCDS.CAL_SUN_SANDHYA, 0); stateText.setValue(GCDS.CAL_VRDDHI, 0); stateText.setValue(GCDS.COREEVENTS_ABHIJIT_MUHURTA, 0); stateText.setValue(GCDS.COREEVENTS_ASCENDENT, 0); stateText.setValue(GCDS.COREEVENTS_CONJUNCTION, 0); stateText.setValue(GCDS.COREEVENTS_GULIKALAM, 0); stateText.setValue(GCDS.COREEVENTS_MOON, 0); stateText.setValue(GCDS.COREEVENTS_MOONRASI, 0); stateText.setValue(GCDS.COREEVENTS_NAKSATRA, 0); stateText.setValue(GCDS.COREEVENTS_RAHUKALAM, 0); stateText.setValue(GCDS.COREEVENTS_SANKRANTI, 0); stateText.setValue(GCDS.COREEVENTS_SUN, 0); stateText.setValue(GCDS.COREEVENTS_TITHI, 0); stateText.setValue(GCDS.COREEVENTS_YAMAGHANTI, 0); stateText.setValue(GCDS.COREEVENTS_YOGA, 0); stateDetailedText.setValue(GCDS.CAL_ARUN_TIME, 0); stateDetailedText.setValue(GCDS.CAL_ARUN_TITHI, 0); stateDetailedText.setValue(GCDS.CAL_AYANAMSHA, 0); stateDetailedText.setValue(GCDS.CAL_BRAHMA_MUHURTA, 1); stateDetailedText.setValue(GCDS.CAL_COREEVENTS, 1); stateDetailedText.setValue(GCDS.CAL_DST_CHANGE, 1); stateDetailedText.setValue(GCDS.CAL_EKADASI_PARANA, 1); stateDetailedText.setValue(GCDS.CAL_FEST_0, 1); stateDetailedText.CalHeaderType = 1; stateDetailedText.setValue(GCDS.CAL_JULIAN, 0); stateDetailedText.setValue(GCDS.CAL_KSAYA, 0); stateDetailedText.setValue(GCDS.CAL_MASA_CHANGE, 1); stateDetailedText.setValue(GCDS.CAL_SUN_RISE, 1); stateDetailedText.setValue(GCDS.CAL_SUN_SANDHYA, 1); stateDetailedText.setValue(GCDS.COREEVENTS_CONJUNCTION, 1); stateDetailedText.setValue(GCDS.COREEVENTS_GULIKALAM, 0); stateDetailedText.setValue(GCDS.COREEVENTS_MOON, 1); stateDetailedText.setValue(GCDS.COREEVENTS_MOONRASI, 1); stateDetailedText.setValue(GCDS.COREEVENTS_NAKSATRA, 1); stateDetailedText.setValue(GCDS.COREEVENTS_TITHI, 1); stateDetailedText.setValue(GCDS.COREEVENTS_YAMAGHANTI, 0); stateDetailedText.setValue(GCDS.COREEVENTS_YOGA, 1); stateDetailedText.setValue(GCDS.GENERAL_FIRST_DOW, stateOrig.getValue(GCDS.GENERAL_FIRST_DOW)); string content; FileRec currentFileRec; for (int locIndex = 0; locIndex < SelectedLocations.Count; locIndex++) { TLocation loc = SelectedLocations[locIndex]; if (!countries.Contains(loc.Country.Name)) { countries.Add(loc.Country.Name); } progressBar1.Invoke(locdel, locIndex); for (int year = StartYear; year <= EndYear; year++) { if (backgroundWorker1.CancellationPending) { return; } if (CancelRequested) { return; } progressBar2.Invoke(yrdel, year); // Thread.Sleep(1000); TResultCalendar calendar; GCLocation locRef = loc.GetLocationRef(); currentFileRec = new FileRec() { filename = year.ToString() + "_" + ToFilePart(loc.CityName) + ".html", filenameDetail = year.ToString() + "_" + ToFilePart(loc.CityName) + "_d.html", filenamePdf = year.ToString() + "_" + ToFilePart(loc.CityName) + ".pdf", city = loc.CityName, country = loc.Country.Name, year = year }; files.Add(currentFileRec); GCDisplaySettings.Current = stateText; calendar = new TResultCalendar(loc.GetLocationRef(), year); content = calendar.formatText(GCDataFormat.HTML); // print plain TXT File.WriteAllText(Path.Combine(OutputDir, currentFileRec.filename), content); // print PDF PrintPdfYear(calendar, year, Path.Combine(OutputDir, currentFileRec.filenamePdf)); GCDisplaySettings.Current = stateDetailedText; calendar = new TResultCalendar(loc.GetLocationRef(), year); content = calendar.formatText(GCDataFormat.HTML); // print detailed TXT File.WriteAllText(Path.Combine(OutputDir, currentFileRec.filenameDetail), content); } // write location index file if (StartYear != EndYear) { File.WriteAllText(Path.Combine(OutputDir, ToFilePart(loc.CityName) + ".html"), GenerateYearIndex(loc, StartYear, EndYear)); } } for (int year = StartYear; year <= EndYear; year++) { // write main index file File.WriteAllText(Path.Combine(OutputDir, "y" + year.ToString() + ".html"), GenerateMainIndex(countries, year, year)); } // write main index file File.WriteAllText(Path.Combine(OutputDir, "index.html"), GenerateMainIndex(countries, StartYear, EndYear)); // write main years file //File.WriteAllText(Path.Combine(OutputDir, "years.html"), GenerateYearsOverview(StartYear, EndYear)); progressBar1.Invoke(new SetProgressValue(SetDialogCompleted), 0); } catch (Exception ex) { Debugger.Log(0, "", "Error: " + ex.Message + "\n" + ex.StackTrace + "\n"); } finally { GCDisplaySettings.Current = stateOrig; } }
private QuadrantArray CalculateQuadrantArray(Quadrant map, GregorianDateTime dt, GCLocation loc, TResultCalendar cal, List <Quadrant> qlist) { QuadrantArray qa = new QuadrantArray(map, calculateSplits(map.LongitudeRange, map.pixelsX), calculateSplits(map.LatitudeRange, map.pixelsY)); for (int lo = 0; lo < qa.Longitudes.Length; lo++) { for (int la = 0; la < qa.Latitudes.Length; la++) { if (qa.Points[lo, la].Result != null) { continue; } VAISNAVADAY vd = GetCalcDay(dt, loc, cal, qa.Longitudes[lo], qa.Latitudes[la]); /* loc.SetCoordinates(qa.Longitudes[lo], qa.Latitudes[la]); * cal.CalculateCalendar(loc, dt, 5); * for (int i = 0; i < 5; i++) * { * VAISNAVADAY vd = cal.GetDay(i); * if (vd.nFastID == FastType.FAST_EKADASI) * { * qa.Points[lo, la].Result = GetSafeResult(vd); * } * }*/ if (vd != null) { qa.Points[lo, la].Result = GetSafeResult(vd); } } } for (int lo = 0; lo < qa.Quadrants.GetLength(0); lo++) { for (int la = 0; la < qa.Quadrants.GetLength(1); la++) { if (qa.Quadrants[lo, la].ResultState == QuadrantResultState.Decomposable) { qlist.Add(qa.Quadrants[lo, la]); } } } return(qa); }
public void RecalculateCalendar() { calendar = new TResultCalendar(); calendar.CalculateCalendar(calLocation, new GregorianDateTime(currentYear, currentMonth, 1), 31); Invalidate(); }