private bool MatchingDpOutcome(string learnRefNum, DateTime?endDate) { return(_learnerDpQueryService.GetDestinationAndProgressionForLearner(learnRefNum)?.DPOutcomes ?.Any(dp => ((dp.OutType.CaseInsensitiveEquals(OutTypeConstants.PaidEmployment) && _employedOutcomeCodes.Contains(dp.OutCode)) || (dp.OutType.CaseInsensitiveEquals(OutTypeConstants.Education) && _educationOutcomeCodes.Contains(dp.OutCode))) && dp.OutStartDate < (endDate?.AddMonths(6) ?? DateTime.MaxValue)) ?? false); }
public static DateTime EndOfCurrentmonth(this DateTime value) { var retVal = new DateTime(DateTime.Now.Year, DateTime.Now.Month, 01); retVal = retVal.AddMonths(1).AddDays(-1); return new DateTime(retVal.Year, retVal.Month, retVal.Day); }
public bool TryConvertToDateTimeRange(out DateTime?dateTimeStart, out DateTime?dateTimeEnd) { dateTimeStart = null; dateTimeEnd = null; if (!ParseDateStrings(out int parsedYear, out int parsedMonth, out int parsedDay)) { return(false); } try { dateTimeStart = new DateTime(parsedYear, parsedMonth, parsedDay); if (!string.IsNullOrEmpty(Day)) { dateTimeEnd = dateTimeStart?.AddDays(1); } else if (!string.IsNullOrEmpty(Month)) { dateTimeEnd = dateTimeStart?.AddMonths(1); } else { dateTimeEnd = dateTimeStart?.AddYears(1); } return(true); } catch (ArgumentOutOfRangeException) { return(false); } }
public static DateTime InstantToDateTime(double instant, DateTime start, TimeUnits units = TimeUnits.SECONDS) { DateTime instantAsDate = start; switch (units) { case TimeUnits.YEARS: instantAsDate = start.AddYears((int)instant); break; case TimeUnits.MONTHS: instantAsDate = start.AddMonths((int)instant); break; case TimeUnits.DAYS: instantAsDate = start.AddDays(instant); break; case TimeUnits.HOURS: instantAsDate = start.AddHours(instant); break; case TimeUnits.MINUTES: instantAsDate = start.AddMinutes(instant); break; case TimeUnits.SECONDS: instantAsDate = start.AddSeconds(instant); break; } return instantAsDate; }
/// <summary> /// Returns true if the date is this month's date. /// </summary> public static bool IsThisMonth(this DateTime time) { DateTime now = DateTime.UtcNow; DateTime monthStart = new DateTime(now.Year, now.Month, 1); DateTime monthEnd = monthStart.AddMonths(1); return time > monthStart && time < monthEnd; }
public void CanAddMonthsAcrossDstTransition() { var tz = TimeZoneInfo.FindSystemTimeZoneById("Pacific Standard Time"); var dt = new DateTime(2015, 2, 9, 0, 0, 0); var result = dt.AddMonths(1, tz); var expected = new DateTimeOffset(2015, 3, 9, 0, 0, 0, TimeSpan.FromHours(-7)); Assert.Equal(expected, result); Assert.Equal(expected.Offset, result.Offset); }
private void Add_Blackout_Dates(ref DatePicker dp_cal) { var dates = new List <DateTime?>(); DateTime?date = dp_cal.DisplayDate; DateTime?startDate = date?.AddMonths(-10); DateTime?endDate = date?.AddMonths(10); for (var dt = startDate; dt <= endDate; dt = dt?.AddDays(1)) { if (dt?.DayOfWeek != DayOfWeek.Sunday) { dates.Add(dt); } } foreach (DateTime d in dates) { dp_cal.BlackoutDates.Add(new CalendarDateRange(d, d)); } }
private static void UpdateGirlSeason() { if (girlSeason == null || girlSeasonStart?.AddMonths(1) < DateTime.Today) { girlSeasonStart = DateTime.Today; using (var db = new Database()) { var misc = db.Misc.FirstOrDefault(); if (misc != null) { if (misc.GirlSeasonStartDate.AddMonths(1) < DateTime.Today) { // rotate seasons if (misc.GirlSeason > 0) { // submit seasonal ratings into the main ones var table = db.Girls.Where(x => x.Season == misc.GirlSeason).ToArray(); foreach (var girl in table) { girl.Rating += girl.SeasonRating; } db.Girls.UpdateRange(table); } misc.GirlSeason++; misc.GirlSeasonStartDate = girlSeasonStart.Value; db.Update(misc); } girlSeason = misc.GirlSeason; } else { db.Misc.Add(new Misc { GirlSeason = 0, GirlSeasonStartDate = girlSeasonStart.Value }); } db.SaveChanges(); } } }
public ActionResult Index(string slug = "", int year = 0, int month = 0, int page = 0) { ViewBag.CurrentLanguage = CurrentLanguage; if (!string.IsNullOrEmpty(slug)) { var post = _nccPostService.GetBySlug(slug); if (post != null) { post = _mediator.FirePostEvent(post, PostEvent.Show, null, _logger); SetShortCodeContent(post); return(View("Details", post)); } TempData["Message"] = "Post not found"; } DateTime?dateFrom = null; DateTime?dateTo = null; if (year > 0 && month > 0) { dateFrom = new DateTime(year, month, 1); dateTo = dateFrom?.AddMonths(1).AddMinutes(-1); } else if (year > 0) { dateFrom = new DateTime(year, 1, 1); dateTo = dateFrom?.AddYears(1).AddMinutes(-1); } var postPerPage = GlobalContext.WebSite.WebSitePageSize; var totalPost = _nccPostService.Count(true, true, true, true, dateFrom, dateTo); var allPost = _nccPostService.Load(page, postPerPage, true, true, true, true, dateFrom, dateTo, 0, 0, 0, "", "PublishDate", "desc"); for (int i = 0; i < allPost.Count; i++) { allPost[i] = _mediator.FirePostEvent(allPost[i], PostEvent.Show); } ViewBag.CurrentPage = page; ViewBag.PostPerPage = postPerPage; ViewBag.TotalPost = totalPost; return(View(allPost)); }
public void AddMonths(DateTime time, int months) { Assert.Equal(time.AddMonths(months), new KoreanCalendar().AddMonths(time, months)); }
/// <summary> /// Gets a DateTime representing the last day in the current month /// </summary> /// <param name="date">The current date</param> /// <returns>Last day of this month</returns> public static DateTime Last(this DateTime date) { return(date.AddMonths(1).AddDays(-date.Day)); }
public void AddMonths(DateTime time, int months) { Assert.Equal(time.AddMonths(months), new ThaiBuddhistCalendar().AddMonths(time, months)); }
private static DateTime?calculateMaturityDate(DateTime?abc_JoiningDate, int?abc_InvestmentPeriod) { return(abc_JoiningDate?.AddMonths((int)abc_InvestmentPeriod)); }
private void GenerateAppointments() { Random ran = new Random(); DateTime today = DateTime.Now; if (today.Month == 12) { today = today.AddMonths(-1); } else if (today.Month == 1) { today = today.AddMonths(1); } int day = (int)today.DayOfWeek; DateTime currentWeek = DateTime.Now.AddDays(-day); var datecoll = new ObservableCollection <DateTime>(); DateTime startMonth = new DateTime(today.Year, today.Month - 1, 1, 0, 0, 0); for (int i = 1; i < 30; i += 2) { for (int j = -7; j < 14; j++) { datecoll.Add(currentWeek.Date.AddDays(j).AddHours(ran.Next(9, 18))); } } ObservableCollection <SolidColorBrush> brush = new ObservableCollection <SolidColorBrush>(); brush.Add(new SolidColorBrush(Color.FromArgb(0xFF, 0xA2, 0xC1, 0x39))); brush.Add(new SolidColorBrush(Color.FromArgb(0xFF, 0xD8, 0x00, 0x73))); brush.Add(new SolidColorBrush(Color.FromArgb(0xFF, 0x1B, 0xA1, 0xE2))); brush.Add(new SolidColorBrush(Color.FromArgb(0xFF, 0xE6, 0x71, 0xB8))); brush.Add(new SolidColorBrush(Color.FromArgb(0xFF, 0xF0, 0x96, 0x09))); brush.Add(new SolidColorBrush(Color.FromArgb(0xFF, 0x33, 0x99, 0x33))); brush.Add(new SolidColorBrush(Color.FromArgb(0xFF, 0x00, 0xAB, 0xA9))); brush.Add(new SolidColorBrush(Color.FromArgb(0xFF, 0xE6, 0x71, 0xB8))); Appointments = new ScheduleAppointmentCollection(); var tempcollection = new ScheduleAppointmentCollection(); Appointments = tempcollection; int count = 0; for (int m = 0; m < 30; m++) { currentdate = datecoll[ran.Next(0, datecoll.Count)]; DateTime nextdate = datecoll[ran.Next(0, datecoll.Count)]; count++; ScheduleAppointment appointment1 = new ScheduleAppointment() { StartTime = currentdate, EndTime = currentdate.AddHours(ran.Next(0, 2)), Subject = subject[count % subject.Length], Location = "Chennai", AppointmentBackground = brush[m % 3] }; appointment1.ResourceCollection.Add(new Resource() { TypeName = "Doctors", ResourceName = "Dr.Jacob" }); count++; ScheduleAppointment appointment2 = new ScheduleAppointment() { StartTime = nextdate, EndTime = nextdate.AddHours(ran.Next(0, 2)), Subject = subject[count % subject.Length], Location = "Chennai", AppointmentBackground = brush[(m + 2) % 3] }; appointment2.ResourceCollection.Add(new Resource() { TypeName = "Doctors", ResourceName = "Dr.Darsy" }); if (m < 5) { appointment1.IsRecursive = true; appointment2.IsRecursive = true; appointment1.RecurrenceRule = "FREQ=WEEKLY;BYDAY=TU,"; appointment2.RecurrenceRule = "FREQ=WEEKLY;BYDAY=MO,"; } tempcollection.Add(appointment1); tempcollection.Add(appointment2); } }
/// <summary> /// 注册赠送模板 /// </summary> /// <param name="accountModel"></param> public void AddFreeTemplate(Account accountModel) { string typeids = $"{(int)TmpType.小程序单页模板},{(int)TmpType.小程序企业模板},{(int)TmpType.小程序专业模板}"; List <XcxTemplate> templist = XcxTemplateBLL.SingleModel.GetListByTypes(typeids); if (templist == null || templist.Count <= 0 || accountModel == null) { return; } XcxAppAccountRelation usertemplate = GetModelByaccound(accountModel.Id.ToString()); if (usertemplate != null) { return; } TransactionModel tran = new TransactionModel(); DateTime nowtime = DateTime.Now; int version = 0; int month = 100 * 12; foreach (XcxTemplate item in templist) { version = 0; if (item.Type == (int)TmpType.小程序专业模板) { version = 3; month = 3; } else { month = 100 * 12; } tran.Add($@"insert into XcxAppAccountRelation(TId,AccountId,AddTime,Url,price,outtime,agentid,VersionId) values({item.Id}, '{accountModel.Id}', '{nowtime}', '{item.Link}', {item.Price}, '{nowtime.AddMonths(month)}',0,{version})"); AgentdepositLog pricemodellog = new AgentdepositLog(); pricemodellog.addtime = DateTime.Now; pricemodellog.afterDeposit = 0; pricemodellog.agentid = 0; pricemodellog.beforeDeposit = 0; pricemodellog.cost = 0; pricemodellog.costdetail = $"客户免费使用小程序模板:{(version == 3 ? "专业基础版" : item.TName)}"; pricemodellog.type = 0; pricemodellog.tid = item.Id; tran.Add(AgentdepositLogBLL.SingleModel.BuildAddSql(pricemodellog)); } if (!ExecuteTransactionDataCorect(tran.sqlArray, tran.ParameterArray)) { log4net.LogHelper.WriteInfo(this.GetType(), "赠送免费版:失败," + Newtonsoft.Json.JsonConvert.SerializeObject(tran)); } }
/// <summary> /// F8 リボン 印刷 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> public override void OnF8Key(object sender, KeyEventArgs e) { PrinterDriver ret = AppCommon.GetPrinter(frmcfg.PrinterName); if (ret.Result == false) { this.ErrorMessage = "プリンタドライバーがインストールされていません!"; return; } frmcfg.PrinterName = ret.PrinterName; if (!base.CheckAllValidation()) { MessageBox.Show("入力内容に誤りがあります。"); SetFocusToTopControl(); return; } int i表示順序 = 表示順序_Cmb.SelectedIndex; if (作成年 == null || 作成月 == null) { this.ErrorMessage = "作成年月は入力必須項目です。"; return; } int i年月; i年月 = Convert.ToInt32((作成年).ToString()) * 100 + Convert.ToInt32(作成月.ToString()); //乗務員リスト作成 int?[] i乗務員List = new int?[0]; if (!string.IsNullOrEmpty(乗務員ピックアップ)) { string[] 乗務員List = 乗務員ピックアップ.Split(','); i乗務員List = new int?[乗務員List.Length]; for (int i = 0; i < 乗務員List.Length; i++) { string str = 乗務員List[i]; int code; if (!int.TryParse(str, out code)) { this.ErrorMessage = "乗務員指定の形式が不正です。"; return; } i乗務員List[i] = code; } } DateTime dDate = new DateTime(AppCommon.IntParse(作成年.ToString()), AppCommon.IntParse(作成月.ToString()), 1); 開始年 = AppCommon.IntParse(作成年.ToString()); 開始月 = AppCommon.IntParse(作成月.ToString()); 項目1 = dDate.Month.ToString() + "月"; int i開始年月 = dDate.Year * 100 + dDate.Month; dDate = dDate.AddMonths(1); 項目2 = dDate.Month.ToString() + "月"; dDate = dDate.AddMonths(1); 項目3 = dDate.Month.ToString() + "月"; dDate = dDate.AddMonths(1); 項目4 = dDate.Month.ToString() + "月"; dDate = dDate.AddMonths(1); 項目5 = dDate.Month.ToString() + "月"; dDate = dDate.AddMonths(1); 項目6 = dDate.Month.ToString() + "月"; dDate = dDate.AddMonths(1); 項目7 = dDate.Month.ToString() + "月"; dDate = dDate.AddMonths(1); 項目8 = dDate.Month.ToString() + "月"; dDate = dDate.AddMonths(1); 項目9 = dDate.Month.ToString() + "月"; dDate = dDate.AddMonths(1); 項目10 = dDate.Month.ToString() + "月"; dDate = dDate.AddMonths(1); 項目11 = dDate.Month.ToString() + "月"; dDate = dDate.AddMonths(1); 項目12 = dDate.Month.ToString() + "月"; int i終了年月 = dDate.Year * 100 + dDate.Month; 終了年 = dDate.Year; 終了月 = dDate.Month; 項目13 = "年合計"; 項目14 = "平 均"; 項目15 = "対売上"; //帳票出力用 base.SendRequest(new CommunicationObject(MessageType.RequestDataWithBusy, SEARCH_JMI13010, new object[] { 乗務員From, 乗務員To, i乗務員List, 乗務員ピックアップ, 作成年, 作成月, })); }
public static bool compareDate(DateTime a, int?year, int?month, int?day, string method) { try { bool result; switch (method) { case "=": if (year != null && month != null && day != null) { result = a.Year.Equals(year) && a.Month.Equals(month) && a.Day.Equals(day); } else if (year != null && month != null) { result = a.Year.Equals(year) && a.Month.Equals(month); } else if (year != null) { result = a.Year.Equals(year); } else { result = false; } break; case ">=": if (year != null && month != null && day != null) { var b = new DateTime((int)year, (int)month, (int)day); result = a >= b; } else if (year != null && month != null) { var b = new DateTime((int)year, (int)month, 1); result = a >= b; } else if (year != null) { result = a.Year >= year; } else { result = false; } break; case "<=": if (year != null && month != null && day != null) { var b = new DateTime((int)year, (int)month, (int)day); result = a <= b; } else if (year != null && month != null) { var b = new DateTime((int)year, (int)month, 1); b = b.AddMonths(1).AddDays(-1); result = a <= b; } else if (year != null) { result = a.Year <= year; } else { result = false; } break; case "!=": if (year != null && month != null && day != null) { result = !(a.Year.Equals(year) && a.Month.Equals(month) && a.Day.Equals(day)); } else if (year != null && month != null) { result = !(a.Year.Equals(year) && a.Month.Equals(month)); } else if (year != null) { result = !(a.Year.Equals(year)); } else { result = false; } break; case ">": if (year != null && month != null && day != null) { var b = new DateTime((int)year, (int)month, (int)day); result = a > b; } else if (year != null && month != null) { var b = new DateTime((int)year, (int)month, 1); b = b.AddMonths(1).AddDays(-1); result = a > b; } else if (year != null) { result = a.Year > year; } else { result = false; } break; case "<": if (year != null && month != null && day != null) { var b = new DateTime((int)year, (int)month, (int)day); result = a < b; } else if (year != null && month != null) { var b = new DateTime((int)year, (int)month, 1); result = a < b; } else if (year != null) { result = a.Year < year; } else { result = false; } break; default: return(false); } return(result); } catch (Exception ex) { Console.WriteLine(ex.Message); return(false); } }
/// <summary> /// 季度第一天 /// </summary> /// <param name="quarters">上季度-1 下季度+1</param> /// <returns></returns> public string GetFirstDayOfQuarter(int? quarters) { int quarter = quarters ?? 0; return dt.AddMonths(quarter * 3 - ((dt.Month - 1) % 3)).ToString("yyyy-MM-01"); }
private void button1_Click(object sender, EventArgs e) { this.Cursor = Cursors.WaitCursor; object[] obj = new object[lista.Count]; int contador = 0; double sy = 0; foreach (Dictionary <string, object> item in this.lista) { double folio = Convert.ToDouble(item["folio"]); string rfc = Convert.ToString(item["rfc"]); string nombre = Convert.ToString(item["nombre_em"]); string f_emischeq = string.IsNullOrWhiteSpace(Convert.ToString(item["f_emischeq"]))?"": string.Format("{0:d}", item["f_emischeq"]); string ubicPagare = Convert.ToString(item["ubic_pagare"]); string proyecto = Convert.ToString(item["proyecto"]); string numdesc = Convert.ToString(item["numdesc"]); string totdesc = Convert.ToString(item["totdesc"]); double importe = (string.IsNullOrWhiteSpace(Convert.ToString(item["importe"]))) ? 0 : (Convert.ToDouble(item["importe"])); double imp_unit = (string.IsNullOrWhiteSpace(Convert.ToString(item["imp_unit"]))) ? 0 : (Convert.ToDouble(item["imp_unit"]));; double pagado = (string.IsNullOrWhiteSpace(Convert.ToString(item["pagado"]))) ? 0 : (Convert.ToDouble(item["pagado"])); double saldo = (string.IsNullOrWhiteSpace(Convert.ToString(item["saldo"]))) ? 0 : (Convert.ToDouble(item["saldo"])); string cta = Convert.ToString(item["cuenta"]); string cta_descripcion = Convert.ToString(item["descripcion_cta"]); string fechaUltimo = string.IsNullOrWhiteSpace(Convert.ToString(item["ultimop"])) ? "" : string.Format("{0:d}", item["ultimop"]); string resultadoFinal = string.Empty; if (!string.IsNullOrWhiteSpace(f_emischeq)) { DateTime fec1 = DateTime.Parse(f_emischeq); DateTime fec2 = DateTime.Parse(this.fecha); string c1 = string.Format("{0}-{1}-{2}", fec1.Year, fec1.Month, fec1.Day); string c2 = string.Format("{0}-{1}-{2}", fec2.Year, fec2.Month, fec2.Day); double Q = 0; int quin = 0; int concilia; for (int A1 = fec1.Year; A1 <= fec2.Year; A1++) { for (int M1 = 1; M1 <= 12; M1++) { quin = (M1 * 2) - 1; DateTime ftemp = new DateTime(A1, M1, 8); if (ftemp >= fec1 && ftemp <= fec2) { Q++; } quin++; ftemp = new DateTime(A1, M1, 23); if (ftemp >= fec1 && ftemp <= fec2) { Q++; } } } Q = 0; while (true) { DateTime aux1 = new DateTime(fec1.Year, fec1.Month, 8); if (aux1 < fec2) { Q++; } else { break; } aux1 = new DateTime(fec1.Year, fec1.Month, 23); if (aux1 < fec2) { Q++; } else { break; } fec1 = fec1.AddMonths(1); } int Qtotales = Convert.ToInt32(Q); int AA = Convert.ToInt32((Qtotales) / 24); int QAux = Qtotales - (AA * 24); int AM = Convert.ToInt32((QAux / 2)); int AQ = QAux - (AM * 2); int A = AA; int M = AM; int q1 = AQ; resultadoFinal = string.Format("A:{0}-M:{1}", A, M); } sy += saldo; object[] aux = { folio, rfc, nombre, ubicPagare, proyecto, numdesc + "/" + totdesc, importe, imp_unit, pagado, saldo, cta, cta_descripcion, resultadoFinal }; obj[contador] = aux; contador++; } string opcion1 = (opcion) ? "QUIROGRAFARIOS" : "HIPOTECARIOS"; string fecha = this.fecha; string logo = globales.getImagen(globales.imagenesSispe.logoreportes); object[][] parametros = new object[2][]; object[] headers = { "p1", "p2", "fecha", "logo" }; object[] body = { opcion1, string.Format("{0:d}", DateTime.Parse(fecha)), string.Format("{0:d}", DateTime.Now), logo }; parametros[0] = headers; parametros[1] = body; if (listBox1.SelectedIndex == 0) { globales.reportes("reporteRsaldopSaldosPrestamo", "reporteSinSaldo", obj, "", false, parametros); } else if (listBox1.SelectedIndex == 1) { globales.reportes("reporteSaldopResumenCuenta", "reporteSinSaldo", obj, "", false, parametros); } else if (listBox1.SelectedIndex == 2) { globales.reportes("reporteRSaldoPAlfabetico", "reporteSinSaldo", obj, "", false, parametros); } else if (listBox1.SelectedIndex == 3) { globales.reportes("reporteRSaldoPAlfabeticoSinSaldordlc", "reporteSinSaldo", obj, "", false, parametros); } else if (listBox1.SelectedIndex == 4) { globales.reportes("reporteRSaldoPFolio", "reporteSinSaldo", obj, "", false, parametros); } else { SaveFileDialog dialogoGuardar = new SaveFileDialog(); dialogoGuardar.AddExtension = true; dialogoGuardar.DefaultExt = ".dbf"; if (dialogoGuardar.ShowDialog() == DialogResult.OK) { string ruta = dialogoGuardar.FileName; Stream ops = File.Open(ruta, FileMode.OpenOrCreate, FileAccess.ReadWrite); DotNetDBF.DBFWriter escribir = new DotNetDBF.DBFWriter(); escribir.DataMemoLoc = ruta.Replace("dbf", "dbt"); DotNetDBF.DBFField c1 = new DotNetDBF.DBFField("FOLIO", DotNetDBF.NativeDbType.Numeric, 20, 2); DotNetDBF.DBFField c2 = new DotNetDBF.DBFField("RFC", DotNetDBF.NativeDbType.Char, 100); DotNetDBF.DBFField c3 = new DotNetDBF.DBFField("NOMBRE_EM", DotNetDBF.NativeDbType.Char, 100); DotNetDBF.DBFField c4 = new DotNetDBF.DBFField("PROYECTO", DotNetDBF.NativeDbType.Char, 100); DotNetDBF.DBFField c5 = new DotNetDBF.DBFField("IMP_UNIT", DotNetDBF.NativeDbType.Numeric, 10, 2); DotNetDBF.DBFField c6 = new DotNetDBF.DBFField("F_PRIMDESC", DotNetDBF.NativeDbType.Char, 20); DotNetDBF.DBFField c7 = new DotNetDBF.DBFField("IMPORTE", DotNetDBF.NativeDbType.Numeric, 10, 2); DotNetDBF.DBFField c8 = new DotNetDBF.DBFField("UBIC_PAGAR", DotNetDBF.NativeDbType.Char, 80); DotNetDBF.DBFField c9 = new DotNetDBF.DBFField("NUMDESC", DotNetDBF.NativeDbType.Numeric, 10, 2); DotNetDBF.DBFField c10 = new DotNetDBF.DBFField("TOTDESC", DotNetDBF.NativeDbType.Numeric, 10, 2); DotNetDBF.DBFField c11 = new DotNetDBF.DBFField("PAGADO", DotNetDBF.NativeDbType.Numeric, 10, 2); DotNetDBF.DBFField c12 = new DotNetDBF.DBFField("FECHA", DotNetDBF.NativeDbType.Char, 20); DotNetDBF.DBFField c13 = new DotNetDBF.DBFField("CTA", DotNetDBF.NativeDbType.Char, 20); DotNetDBF.DBFField c14 = new DotNetDBF.DBFField("SALDO", DotNetDBF.NativeDbType.Numeric, 10, 2); DotNetDBF.DBFField[] campos = new DotNetDBF.DBFField[] { c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11, c12, c13, c14 }; escribir.Fields = campos; foreach (Dictionary <string, object> item in this.lista) { List <object> record = new List <object> { Convert.ToDouble(item["folio"]), Convert.ToString(item["rfc"]), Convert.ToString(item["nombre_em"]), Convert.ToString(item["proyecto"]), (string.IsNullOrWhiteSpace(Convert.ToString(item["imp_unit"])))?0:Convert.ToDouble(item["imp_unit"]), Convert.ToString(item["f_primdesc"]).Replace(" 12:00:00 a. m.", ""), (string.IsNullOrWhiteSpace(Convert.ToString(item["importe"])))?0:Convert.ToDouble(item["importe"]), Convert.ToString(item["ubic_pagare"]), (string.IsNullOrWhiteSpace(Convert.ToString(item["numdesc"])))?0:Convert.ToDouble(item["numdesc"]), (string.IsNullOrWhiteSpace(Convert.ToString(item["totdesc"])))?0:Convert.ToDouble(item["totdesc"]), (string.IsNullOrWhiteSpace(Convert.ToString(item["pagado"])))?0:Convert.ToDouble(item["pagado"]), Convert.ToString(item["f_emischeq"]).Replace(" 12:00:00 a. m.", ""), Convert.ToString(item["cuenta"]), (string.IsNullOrWhiteSpace(Convert.ToString(item["saldo"])))?0:Convert.ToDouble(item["saldo"]) }; escribir.AddRecord(record.ToArray()); } escribir.Write(ops); escribir.Close(); ops.Close(); globales.MessageBoxSuccess("Archivo .DBF generado exitosamente", "Archivo generado", globales.menuPrincipal); } } this.Cursor = Cursors.Default; }
/// <summary> /// Gets the excel date. /// </summary> /// <param name="year">The year.</param> /// <param name="month">The month.</param> /// <param name="day">The day.</param> /// <param name="hour">The hour.</param> /// <param name="minute">The minute.</param> /// <param name="second">The second.</param> /// <param name="use1904windowing">Should 1900 or 1904 date windowing be used?</param> /// <returns></returns> public static double GetExcelDate(int year, int month, int day, int hour, int minute, int second, bool use1904windowing) { if ((!use1904windowing && year < 1900) || //1900 date system must bigger than 1900 (use1904windowing && year < 1904)) //1904 date system must bigger than 1904 { return(BAD_DATE); } DateTime startdate; if (use1904windowing) { startdate = new DateTime(1904, 1, 1); } else { startdate = new DateTime(1900, 1, 1); } int nextyearmonth = 0; if (month > 12) { nextyearmonth = month - 12; month = 12; } int nextmonthday = 0; if ((month == 1 || month == 3 || month == 5 || month == 7 || month == 8 || month == 10 || month == 12)) { //big month if (day > 31) { nextmonthday = day - 31; day = 31; } } else if ((month == 4 || month == 6 || month == 9 || month == 11)) { //small month if (day > 30) { nextmonthday = day - 30; day = 30; } } else if (DateTime.IsLeapYear(year)) { //Feb. with leap year if (day > 29) { nextmonthday = day - 29; day = 29; } } else { //Feb without leap year if (day > 28) { nextmonthday = day - 28; day = 28; } } if (day <= 0) { nextmonthday = day - 1; day = 1; } DateTime date = new DateTime(year, month, day, hour, minute, second); date = date.AddMonths(nextyearmonth); date = date.AddDays(nextmonthday); double value = (date - startdate).TotalDays + 1; if (!use1904windowing && value >= 60) { value++; } else if (use1904windowing) { value--; } return(value); }
/// <summary> /// 帳票ファイル作成処理 /// </summary> /// <param name="targetReport"></param> /// <param name="staffNo"></param> /// <param name="orderNo"></param> public void SaveFile() { bool bNoDataFlag; double dOutputTemp; ICellStyle cellStyleTemp; DateTime dtTargetDay; DataTable dtResultDetail; DateTime dtTargetMonth = DateTime.ParseExact(pstrTargetMonth + "01", "yyyyMMdd", null); SaveFileDialog sfd = new SaveFileDialog(); JapaneseCalendar clsJapaneseCalendar = new JapaneseCalendar(); // 保存ダイアログのプロパティ設定 SetSaveFileDialogProperties(ref sfd); //ダイアログを表示する if (sfd.ShowDialog() != DialogResult.OK) { return; } // オブジェクト初期化 InitializeObject(); // Officeオブジェクトの初期化 IWorkbook xlWorkbook = WorkbookFactory.Create(strFilePath); ISheet xlSheet = xlWorkbook.GetSheet("シート"); // === Excelデータ入力 === // 作成年月日 WriteCellValue(xlSheet, COLUMN_CREATE_YEAR, ROW_CREATE_YEAR, double.Parse(clsJapaneseCalendar.GetYear(System.DateTime.Now).ToString())); WriteCellValue(xlSheet, COLUMN_CREATE_MONTH, ROW_CREATE_MONTH, double.Parse(DateTime.Now.ToString("MM"))); WriteCellValue(xlSheet, COLUMN_CREATE_DAY, ROW_CREATE_DAY, double.Parse(DateTime.Now.ToString("dd"))); // 区分 WriteCellValue(xlSheet, COLUMN_KUBUN, ROW_KUBUN, drWardYoushiki9["kubun"].ToString()); // 看護配置・看護補助配置人数 WriteCellValue(xlSheet, COLUMN_NURSE_COUNT, ROW_NURSE_COUNT, double.Parse(drWardYoushiki9["nurse_count"].ToString())); WriteCellValue(xlSheet, COLUMN_CARE_COUNT, ROW_CARE_COUNT, double.Parse(drWardYoushiki9["care_count"].ToString())); // 届出の病棟数 WriteCellValue(xlSheet, COLUMN_WARD_COUNT, ROW_WARD_COUNT, double.Parse(drWardYoushiki9["ward_count"].ToString())); // 届出の病床数 WriteCellValue(xlSheet, COLUMN_BED_COUNT, ROW_BED_COUNT, double.Parse(drWardYoushiki9["bed_count"].ToString())); // 1日平均入院患者数 WriteCellValue(xlSheet, COLUMN_AVERAGE_DAY, ROW_AVERAGE_DAY, double.Parse(drWardYoushiki9["average_day"].ToString())); // 1日平均入院患者数(算出期間) WriteCellValue(xlSheet, COLUMN_AVERAGE_DAY_START_YEAR, ROW_AVERAGE_DAY_START_YEAR, double.Parse(clsJapaneseCalendar.GetYear(dtTargetMonth.AddMonths(-12)).ToString())); WriteCellValue(xlSheet, COLUMN_AVERAGE_DAY_START_MONTH, ROW_AVERAGE_DAY_START_MONTH, double.Parse(dtTargetMonth.AddMonths(-12).ToString("MM"))); WriteCellValue(xlSheet, COLUMN_AVERAGE_DAY_END_YEAR, ROW_AVERAGE_DAY_END_YEAR, double.Parse(clsJapaneseCalendar.GetYear(System.DateTime.Now.AddMonths(-1)).ToString())); WriteCellValue(xlSheet, COLUMN_AVERAGE_DAY_END_MONTH, ROW_AVERAGE_DAY_END_MONTH, double.Parse(dtTargetMonth.AddMonths(-1).ToString("MM"))); // 平均在院日数 WriteCellValue(xlSheet, COLUMN_AVERAGE_YEARS, ROW_AVERAGE_YEARS, double.Parse(drWardYoushiki9["average_year"].ToString())); // 平均在院日数(算出期間) // Mod Start WataruT 2020.11.06 様式9の平均在院日数の算出期間修正 //WriteCellValue(xlSheet, COLUMN_AVERAGE_YEARS_START_YEAR, ROW_AVERAGE_YEARS_START_YEAR, double.Parse((int.Parse(clsJapaneseCalendar.GetYear(dtTargetMonth.AddMonths(-3)).ToString()) - 1).ToString())); WriteCellValue(xlSheet, COLUMN_AVERAGE_YEARS_START_YEAR, ROW_AVERAGE_YEARS_START_YEAR, double.Parse((int.Parse(clsJapaneseCalendar.GetYear(dtTargetMonth.AddMonths(-3)).ToString())).ToString())); // Mod End WataruT 2020.11.06 様式9の平均在院日数の算出期間修正 WriteCellValue(xlSheet, COLUMN_AVERAGE_YEARS_START_MONTH, ROW_AVERAGE_YEARS_START_MONTH, double.Parse(dtTargetMonth.AddMonths(-3).ToString("MM"))); // Mod Start WataruT 2020.11.06 様式9の平均在院日数の算出期間修正 //WriteCellValue(xlSheet, COLUMN_AVERAGE_YEARS_END_YEAR, ROW_AVERAGE_YEARS_END_YEAR, double.Parse((int.Parse(clsJapaneseCalendar.GetYear(dtTargetMonth.AddMonths(-1)).ToString()) - 1).ToString())); WriteCellValue(xlSheet, COLUMN_AVERAGE_YEARS_END_YEAR, ROW_AVERAGE_YEARS_END_YEAR, double.Parse((int.Parse(clsJapaneseCalendar.GetYear(dtTargetMonth.AddMonths(-1)).ToString())).ToString())); // Mod End WataruT 2020.11.06 様式9の平均在院日数の算出期間修正 WriteCellValue(xlSheet, COLUMN_AVERAGE_YEARS_END_MONTH, ROW_AVERAGE_YEARS_END_MONTH, double.Parse(dtTargetMonth.AddMonths(-1).ToString("MM"))); // 対象年月 WriteCellValue(xlSheet, COLUMN_TARGET_YEAR, ROW_TARGET_YEAR, double.Parse(clsJapaneseCalendar.GetYear(dtTargetMonth).ToString())); WriteCellValue(xlSheet, COLUMN_TARGET_MONTH, ROW_TARGET_MONTH, double.Parse(dtTargetMonth.ToString("MM"))); // 稼働日数 WriteCellValue(xlSheet, COLUMN_WORK_DAYS, ROW_WORK_DAYS, DateTime.DaysInMonth(dtTargetMonth.Year, dtTargetMonth.Month)); // << 看護職員表 >> // == 日付・曜日 == for (int i = 0; i < DateTime.DaysInMonth(dtTargetMonth.Year, dtTargetMonth.Month); i++) { // 日にち WriteCellValue(xlSheet, COLUMN_NURSE_DAY_START + i, ROW_NURSE_DAY, (i + 1).ToString() + "日"); // 曜日 WriteCellValue(xlSheet, COLUMN_NURSE_DAY_START + i, ROW_NURSE_DAY_OF_WEEK, dtTargetMonth.AddDays(double.Parse(i.ToString())).ToString("ddd") + "曜"); } // == 職員氏名欄(種別、順番、病棟、氏名、雇用形態) == for (int iStaff = 0; iStaff < astrScheduleStaffNurse.GetLength(0); iStaff++) { // 種別 WriteCellValue(xlSheet, COLUMN_NURSE_STAFF_START, ROW_NURSE_STAFF_START + (iStaff + 1) * 3 - 3, astrScheduleStaffNurse[iStaff, 2]); WriteCellValue(xlSheet, COLUMN_NURSE_STAFF_START, ROW_NURSE_STAFF_START + (iStaff + 1) * 3 - 2, ""); WriteCellValue(xlSheet, COLUMN_NURSE_STAFF_START, ROW_NURSE_STAFF_START + (iStaff + 1) * 3 - 1, ""); // 順番 WriteCellValue(xlSheet, COLUMN_NURSE_STAFF_START + 1, ROW_NURSE_STAFF_START + (iStaff + 1) * 3 - 3, double.Parse((iStaff + 1).ToString())); WriteCellValue(xlSheet, COLUMN_NURSE_STAFF_START + 1, ROW_NURSE_STAFF_START + (iStaff + 1) * 3 - 2, ""); WriteCellValue(xlSheet, COLUMN_NURSE_STAFF_START + 1, ROW_NURSE_STAFF_START + (iStaff + 1) * 3 - 1, ""); // 病棟 WriteCellValue(xlSheet, COLUMN_NURSE_STAFF_START + 2, ROW_NURSE_STAFF_START + (iStaff + 1) * 3 - 3, pstrWardName); WriteCellValue(xlSheet, COLUMN_NURSE_STAFF_START + 2, ROW_NURSE_STAFF_START + (iStaff + 1) * 3 - 2, ""); WriteCellValue(xlSheet, COLUMN_NURSE_STAFF_START + 2, ROW_NURSE_STAFF_START + (iStaff + 1) * 3 - 1, ""); // 氏名 WriteCellValue(xlSheet, COLUMN_NURSE_STAFF_START + 3, ROW_NURSE_STAFF_START + (iStaff + 1) * 3 - 3, astrScheduleStaffNurse[iStaff, 1]); WriteCellValue(xlSheet, COLUMN_NURSE_STAFF_START + 3, ROW_NURSE_STAFF_START + (iStaff + 1) * 3 - 2, ""); WriteCellValue(xlSheet, COLUMN_NURSE_STAFF_START + 3, ROW_NURSE_STAFF_START + (iStaff + 1) * 3 - 1, ""); // 雇用形態(常勤) WriteCellValue(xlSheet, COLUMN_NURSE_STAFF_START + 4, ROW_NURSE_STAFF_START + (iStaff + 1) * 3 - 3, "常勤"); WriteCellValue(xlSheet, COLUMN_NURSE_STAFF_START + 4, ROW_NURSE_STAFF_START + (iStaff + 1) * 3 - 2, 1); WriteCellValue(xlSheet, COLUMN_NURSE_STAFF_START + 4, ROW_NURSE_STAFF_START + (iStaff + 1) * 3 - 1, ""); // 雇用形態(短時間) WriteCellValue(xlSheet, COLUMN_NURSE_STAFF_START + 5, ROW_NURSE_STAFF_START + (iStaff + 1) * 3 - 3, "短時間"); WriteCellValue(xlSheet, COLUMN_NURSE_STAFF_START + 5, ROW_NURSE_STAFF_START + (iStaff + 1) * 3 - 2, 0); WriteCellValue(xlSheet, COLUMN_NURSE_STAFF_START + 5, ROW_NURSE_STAFF_START + (iStaff + 1) * 3 - 1, ""); // 雇用形態(非常勤) WriteCellValue(xlSheet, COLUMN_NURSE_STAFF_START + 6, ROW_NURSE_STAFF_START + (iStaff + 1) * 3 - 3, "非常勤"); WriteCellValue(xlSheet, COLUMN_NURSE_STAFF_START + 6, ROW_NURSE_STAFF_START + (iStaff + 1) * 3 - 2, 0); WriteCellValue(xlSheet, COLUMN_NURSE_STAFF_START + 6, ROW_NURSE_STAFF_START + (iStaff + 1) * 3 - 1, ""); // 雇用形態(他部署兼務) WriteCellValue(xlSheet, COLUMN_NURSE_STAFF_START + 7, ROW_NURSE_STAFF_START + (iStaff + 1) * 3 - 3, "他部署兼務"); WriteCellValue(xlSheet, COLUMN_NURSE_STAFF_START + 7, ROW_NURSE_STAFF_START + (iStaff + 1) * 3 - 2, 0); WriteCellValue(xlSheet, COLUMN_NURSE_STAFF_START + 7, ROW_NURSE_STAFF_START + (iStaff + 1) * 3 - 1, ""); } // == 実績データ == for (int iStaff = 0; iStaff < astrScheduleStaffNurse.GetLength(0); iStaff++) { // 対象職員の実績データ取得 dtResultDetail = clsDatabaseControl.GetResultDetail_Ward_Staff_StaffKind_TargetMonth(pstrWard, astrScheduleStaffNurse[iStaff, 0], "01", pstrTargetMonth); // 1日から順に処理 for (int iDay = 0; iDay < DateTime.DaysInMonth(dtTargetMonth.Year, dtTargetMonth.Month); iDay++) { // データなしフラグを初期化 bNoDataFlag = false; // 実績データがある場合 if (dtResultDetail.Rows.Count != 0) { foreach (DataRow row in dtResultDetail.Rows) { if (DateTime.Parse(row["target_date"].ToString()).Day == iDay + 1) { if (double.TryParse(row["work_time_day"].ToString(), out dOutputTemp)) { WriteCellValue(xlSheet, COLUMN_NURSE_DAY_START + iDay, ROW_NURSE_STAFF_START + (iStaff + 1) * 3 - 3, dOutputTemp); } if (double.TryParse(row["work_time_night"].ToString(), out dOutputTemp)) { WriteCellValue(xlSheet, COLUMN_NURSE_DAY_START + iDay, ROW_NURSE_STAFF_START + (iStaff + 1) * 3 - 2, dOutputTemp); } if (double.TryParse(row["work_time_night_total"].ToString(), out dOutputTemp)) { WriteCellValue(xlSheet, COLUMN_NURSE_DAY_START + iDay, ROW_NURSE_STAFF_START + (iStaff + 1) * 3 - 1, dOutputTemp); } bNoDataFlag = true; break; } } } // 実績データがない場合 else if (bNoDataFlag == false) { WriteCellValue(xlSheet, COLUMN_NURSE_DAY_START + iDay, ROW_NURSE_STAFF_START + (iStaff + 1) * 3 - 3, ""); WriteCellValue(xlSheet, COLUMN_NURSE_DAY_START + iDay, ROW_NURSE_STAFF_START + (iStaff + 1) * 3 - 2, ""); WriteCellValue(xlSheet, COLUMN_NURSE_DAY_START + iDay, ROW_NURSE_STAFF_START + (iStaff + 1) * 3 - 1, ""); } } } // == 休日の背景色変更 == for (int i = 0; i < DateTime.DaysInMonth(dtTargetMonth.Year, dtTargetMonth.Month); i++) { // 対象日付をセット dtTargetDay = DateTime.Parse(dtTargetMonth.ToString("yyyy/MM/") + String.Format("{0:D2}", i + 1)); // 日曜または祝日判定 if (clsDatabaseControl.GetHolidayDate_Check(dtTargetDay.ToString("yyyyMMdd")) || dtTargetDay.ToString("ddd") == "日") { for (int iStaff = 0; iStaff < astrScheduleStaffNurse.GetLength(0); iStaff++) { cellStyleTemp = xlWorkbook.CreateCellStyle(); cellStyleTemp.CloneStyleFrom(GetCellStyle(xlSheet, COLUMN_NURSE_DAY_START + i, ROW_NURSE_STAFF_START + (iStaff + 1) * 3 - 3)); cellStyleTemp.FillPattern = FillPattern.LessDots; cellStyleTemp.FillForegroundColor = IndexedColors.Black.Index; cellStyleTemp.FillBackgroundColor = IndexedColors.White.Index; WriteCellStyle(xlSheet, COLUMN_NURSE_DAY_START + i, ROW_NURSE_STAFF_START + (iStaff + 1) * 3 - 3, cellStyleTemp); cellStyleTemp = xlWorkbook.CreateCellStyle(); cellStyleTemp.CloneStyleFrom(GetCellStyle(xlSheet, COLUMN_NURSE_DAY_START + i, ROW_NURSE_STAFF_START + (iStaff + 1) * 3 - 2)); cellStyleTemp.FillPattern = FillPattern.LessDots; cellStyleTemp.FillForegroundColor = IndexedColors.Black.Index; cellStyleTemp.FillBackgroundColor = IndexedColors.White.Index; WriteCellStyle(xlSheet, COLUMN_NURSE_DAY_START + i, ROW_NURSE_STAFF_START + (iStaff + 1) * 3 - 2, cellStyleTemp); cellStyleTemp = xlWorkbook.CreateCellStyle(); cellStyleTemp.CloneStyleFrom(GetCellStyle(xlSheet, COLUMN_NURSE_DAY_START + i, ROW_NURSE_STAFF_START + (iStaff + 1) * 3 - 1)); cellStyleTemp.FillPattern = FillPattern.LessDots; cellStyleTemp.FillForegroundColor = IndexedColors.Black.Index; cellStyleTemp.FillBackgroundColor = IndexedColors.White.Index; WriteCellStyle(xlSheet, COLUMN_NURSE_DAY_START + i, ROW_NURSE_STAFF_START + (iStaff + 1) * 3 - 1, cellStyleTemp); } } } // << 看護補助職員表 >> // == 日付・曜日 == for (int i = 0; i < DateTime.DaysInMonth(dtTargetMonth.Year, dtTargetMonth.Month); i++) { // 日にち WriteCellValue(xlSheet, COLUMN_CARE_DAY_START + i, ROW_CARE_DAY, (i + 1).ToString() + "日"); // 曜日 WriteCellValue(xlSheet, COLUMN_CARE_DAY_START + i, ROW_CARE_DAY_OF_WEEK, dtTargetMonth.AddDays(double.Parse(i.ToString())).ToString("ddd") + "曜"); } // == 職員氏名欄(種別、順番、病棟、氏名、雇用形態) == for (int iStaff = 0; iStaff < astrScheduleStaffCare.GetLength(0); iStaff++) { // 順番 WriteCellValue(xlSheet, COLUMN_CARE_STAFF_START, ROW_CARE_STAFF_START + (iStaff + 1) * 3 - 3, double.Parse((iStaff + 1).ToString())); WriteCellValue(xlSheet, COLUMN_CARE_STAFF_START, ROW_CARE_STAFF_START + (iStaff + 1) * 3 - 2, ""); WriteCellValue(xlSheet, COLUMN_CARE_STAFF_START, ROW_CARE_STAFF_START + (iStaff + 1) * 3 - 1, ""); // 病棟 WriteCellValue(xlSheet, COLUMN_CARE_STAFF_START + 1, ROW_CARE_STAFF_START + (iStaff + 1) * 3 - 3, pstrWardName); WriteCellValue(xlSheet, COLUMN_CARE_STAFF_START + 1, ROW_CARE_STAFF_START + (iStaff + 1) * 3 - 2, ""); WriteCellValue(xlSheet, COLUMN_CARE_STAFF_START + 1, ROW_CARE_STAFF_START + (iStaff + 1) * 3 - 1, ""); // 氏名 WriteCellValue(xlSheet, COLUMN_CARE_STAFF_START + 2, ROW_CARE_STAFF_START + (iStaff + 1) * 3 - 3, astrScheduleStaffCare[iStaff, 1]); WriteCellValue(xlSheet, COLUMN_CARE_STAFF_START + 2, ROW_CARE_STAFF_START + (iStaff + 1) * 3 - 2, ""); WriteCellValue(xlSheet, COLUMN_CARE_STAFF_START + 2, ROW_CARE_STAFF_START + (iStaff + 1) * 3 - 1, ""); // 雇用形態(常勤) WriteCellValue(xlSheet, COLUMN_CARE_STAFF_START + 3, ROW_CARE_STAFF_START + (iStaff + 1) * 3 - 3, "常勤"); WriteCellValue(xlSheet, COLUMN_CARE_STAFF_START + 3, ROW_CARE_STAFF_START + (iStaff + 1) * 3 - 2, 1); WriteCellValue(xlSheet, COLUMN_CARE_STAFF_START + 3, ROW_CARE_STAFF_START + (iStaff + 1) * 3 - 1, ""); // 雇用形態(短時間) WriteCellValue(xlSheet, COLUMN_CARE_STAFF_START + 4, ROW_CARE_STAFF_START + (iStaff + 1) * 3 - 3, "短時間"); WriteCellValue(xlSheet, COLUMN_CARE_STAFF_START + 4, ROW_CARE_STAFF_START + (iStaff + 1) * 3 - 2, 0); WriteCellValue(xlSheet, COLUMN_CARE_STAFF_START + 4, ROW_CARE_STAFF_START + (iStaff + 1) * 3 - 1, ""); // 雇用形態(非常勤) WriteCellValue(xlSheet, COLUMN_CARE_STAFF_START + 5, ROW_CARE_STAFF_START + (iStaff + 1) * 3 - 3, "非常勤"); WriteCellValue(xlSheet, COLUMN_CARE_STAFF_START + 5, ROW_CARE_STAFF_START + (iStaff + 1) * 3 - 2, 0); WriteCellValue(xlSheet, COLUMN_CARE_STAFF_START + 5, ROW_CARE_STAFF_START + (iStaff + 1) * 3 - 1, ""); // 雇用形態(他部署兼務) WriteCellValue(xlSheet, COLUMN_CARE_STAFF_START + 6, ROW_CARE_STAFF_START + (iStaff + 1) * 3 - 3, "他部署兼務"); WriteCellValue(xlSheet, COLUMN_CARE_STAFF_START + 6, ROW_CARE_STAFF_START + (iStaff + 1) * 3 - 2, 0); WriteCellValue(xlSheet, COLUMN_CARE_STAFF_START + 6, ROW_CARE_STAFF_START + (iStaff + 1) * 3 - 1, ""); //Add Start WataruT 2020.08.31 様式9に事務的業務の担当者フラグをセット // 事務的業務 WriteCellValue(xlSheet, COLUMN_CARE_STAFF_START + 7, ROW_CARE_STAFF_START + (iStaff + 1) * 3 - 3, "事務的業務"); WriteCellValue(xlSheet, COLUMN_CARE_STAFF_START + 7, ROW_CARE_STAFF_START + (iStaff + 1) * 3 - 2, int.Parse(astrScheduleStaffCare[iStaff, 3])); WriteCellValue(xlSheet, COLUMN_CARE_STAFF_START + 7, ROW_CARE_STAFF_START + (iStaff + 1) * 3 - 1, ""); //Add End WataruT 2020.08.31 様式9に事務的業務の担当者フラグをセット } // == 実績データ == for (int iStaff = 0; iStaff < astrScheduleStaffCare.GetLength(0); iStaff++) { // 対象職員の実績データ取得 dtResultDetail = clsDatabaseControl.GetResultDetail_Ward_Staff_StaffKind_TargetMonth(pstrWard, astrScheduleStaffCare[iStaff, 0], "02", pstrTargetMonth); // 1日から順に処理 for (int iDay = 0; iDay < DateTime.DaysInMonth(dtTargetMonth.Year, dtTargetMonth.Month); iDay++) { // データなしフラグを初期化 bNoDataFlag = false; // 実績データがある場合 if (dtResultDetail.Rows.Count != 0) { foreach (DataRow row in dtResultDetail.Rows) { if (DateTime.Parse(row["target_date"].ToString()).Day == iDay + 1) { if (double.TryParse(row["work_time_day"].ToString(), out dOutputTemp)) { WriteCellValue(xlSheet, COLUMN_CARE_DAY_START + iDay, ROW_CARE_STAFF_START + (iStaff + 1) * 3 - 3, dOutputTemp); } if (double.TryParse(row["work_time_night"].ToString(), out dOutputTemp)) { WriteCellValue(xlSheet, COLUMN_CARE_DAY_START + iDay, ROW_CARE_STAFF_START + (iStaff + 1) * 3 - 2, dOutputTemp); } if (double.TryParse(row["work_time_night_total"].ToString(), out dOutputTemp)) { WriteCellValue(xlSheet, COLUMN_CARE_DAY_START + iDay, ROW_CARE_STAFF_START + (iStaff + 1) * 3 - 1, dOutputTemp); } bNoDataFlag = true; break; } } } // 実績データがない場合 else if (bNoDataFlag == false) { WriteCellValue(xlSheet, COLUMN_CARE_DAY_START + iDay, ROW_CARE_STAFF_START + (iStaff + 1) * 3 - 3, ""); WriteCellValue(xlSheet, COLUMN_CARE_DAY_START + iDay, ROW_CARE_STAFF_START + (iStaff + 1) * 3 - 2, ""); WriteCellValue(xlSheet, COLUMN_CARE_DAY_START + iDay, ROW_CARE_STAFF_START + (iStaff + 1) * 3 - 1, ""); } } } // == 休日の背景色変更 == for (int i = 0; i < DateTime.DaysInMonth(dtTargetMonth.Year, dtTargetMonth.Month); i++) { // 対象日付をセット dtTargetDay = DateTime.Parse(dtTargetMonth.ToString("yyyy/MM/") + String.Format("{0:D2}", i + 1)); // 日曜または祝日判定 if (clsDatabaseControl.GetHolidayDate_Check(dtTargetDay.ToString("yyyyMMdd")) || dtTargetDay.ToString("ddd") == "日") { for (int iStaff = 0; iStaff < astrScheduleStaffCare.GetLength(0); iStaff++) { cellStyleTemp = xlWorkbook.CreateCellStyle(); cellStyleTemp.CloneStyleFrom(GetCellStyle(xlSheet, COLUMN_CARE_DAY_START + i, ROW_CARE_STAFF_START + (iStaff + 1) * 3 - 3)); cellStyleTemp.FillPattern = FillPattern.LessDots; cellStyleTemp.FillForegroundColor = IndexedColors.Black.Index; cellStyleTemp.FillBackgroundColor = IndexedColors.White.Index; WriteCellStyle(xlSheet, COLUMN_CARE_DAY_START + i, ROW_CARE_STAFF_START + (iStaff + 1) * 3 - 3, cellStyleTemp); cellStyleTemp = xlWorkbook.CreateCellStyle(); cellStyleTemp.CloneStyleFrom(GetCellStyle(xlSheet, COLUMN_CARE_DAY_START + i, ROW_CARE_STAFF_START + (iStaff + 1) * 3 - 2)); cellStyleTemp.FillPattern = FillPattern.LessDots; cellStyleTemp.FillForegroundColor = IndexedColors.Black.Index; cellStyleTemp.FillBackgroundColor = IndexedColors.White.Index; WriteCellStyle(xlSheet, COLUMN_CARE_DAY_START + i, ROW_CARE_STAFF_START + (iStaff + 1) * 3 - 2, cellStyleTemp); cellStyleTemp = xlWorkbook.CreateCellStyle(); cellStyleTemp.CloneStyleFrom(GetCellStyle(xlSheet, COLUMN_CARE_DAY_START + i, ROW_CARE_STAFF_START + (iStaff + 1) * 3 - 1)); cellStyleTemp.FillPattern = FillPattern.LessDots; cellStyleTemp.FillForegroundColor = IndexedColors.Black.Index; cellStyleTemp.FillBackgroundColor = IndexedColors.White.Index; WriteCellStyle(xlSheet, COLUMN_CARE_DAY_START + i, ROW_CARE_STAFF_START + (iStaff + 1) * 3 - 1, cellStyleTemp); } } } // 不要な行を非表示とする for (int i = ROW_NURSE_STAFF_START + (3 * astrScheduleStaffNurse.GetLength(0)); i <= ROW_NURSE_STAFF_END; i++) { xlSheet.GetRow(i).Height = 1; } for (int i = ROW_CARE_STAFF_START + (3 * astrScheduleStaffCare.GetLength(0)); i <= ROW_CARE_STAFF_END; i++) { xlSheet.GetRow(i).Height = 1; } // シート内の各関数の再計算 XSSFFormulaEvaluator.EvaluateAllFormulaCells(xlWorkbook); // ファイル保存 using (var fs = new FileStream(sfd.FileName, FileMode.Create)) { xlWorkbook.Write(fs); } // 終了メッセージ MessageBox.Show("保存完了"); }
/* Función de controlador tipo GET que abre la vista principal del sistema del lado del * usuario, en esta vista se permite visualizar toda la información principal de la comisión. * Parámetros: Id de la comisión*/ public ActionResult InformacionPrincipal(int id) { ComisionUserTableViewModel model = new ComisionUserTableViewModel(); using (var db = new SaludOcupacionalEntities()) { var oComision = db.Comision.Find(id); var oCentroDeTrabajo = db.CentroDeTrabajo.Find(oComision.idCentroDeTrabajo); model.nombre = oCentroDeTrabajo.nombreCentroDeTrabajo; model.contacto = oComision.contacto; model.contactoCorreo = oComision.contactoCorreo; model.contactoTelefono = oComision.contactoTelefono; model.jefatura = oComision.jefatura; model.jefaturaCorreo = oComision.jefaturaCorreo; model.jefaturaTelefono = oComision.jefaturaTelefono; model.idComision = oComision.idComision; model.fechaDeRegistro = oComision.fechaDeRegistro; model.numeroRegistro = oComision.numeroDeRegistro; model.ultimoInforme = oComision.ultimoInforme; } if (model.contacto == null || model.contactoCorreo == null || model.contactoTelefono == null || model.jefatura == null || model.jefaturaCorreo == null || model.jefaturaTelefono == null || model.fechaDeRegistro == null || model.numeroRegistro == null) { return(Redirect(Url.Content("~/ComisionUser/LlenarInformacion/" + model.idComision))); } using (SaludOcupacionalEntities db = new SaludOcupacionalEntities()) { model.representantes = (from d in db.Representante where d.idComision == id && d.estado == 1 orderby d.idRepresentante select new RepresentanteTableViewModel { idRepresentante = d.idRepresentante, nombre = d.nombre, correo = d.correo, telefono = d.telefono, idComision = d.idComision, tipo = d.tipo == 0 ? "Patrono" : "Trabajador" }).ToList(); } DateTime hoy = DateTime.Today; DateTime?fechaInforme = model.ultimoInforme; // Comparación para alzar la notificación de entrega del informe anual. if (fechaInforme == null || fechaInforme?.Year < hoy.Year) { ViewBag.Mensaje = "Recuerde por favor entregar el informe Anual\n Ya lo ha entregado?"; } DateTime?fechaRegistro = model.fechaDeRegistro; DateTime?fechaVencimiento = fechaRegistro?.AddYears(3); DateTime?fechaVencimientoTemp = fechaVencimiento?.AddMonths(-2); /* Comparación que actualiza el mensaje de vencimiento de comisión, dependiendo si * faltan 2 meses para su vencimiento, o bien está vencida. La renovación de comisión * es un proceso que se realiza por fuera entonces sólo corresponde recordar*/ if (hoy < fechaVencimiento && hoy >= fechaVencimientoTemp) { var cantDias = (fechaVencimiento - hoy)?.TotalDays; ViewBag.Vencimiento = "Su comisión está a " + cantDias.ToString() + " días de vencerse. Por favor, renuévela."; } else if (hoy >= fechaVencimiento) { ViewBag.Vencimiento = "Su comisión está vencida desde el " + fechaVencimiento?.ToShortDateString() + ". Por favor, renuévela."; } int cantPatronos, cantTrabajadores; using (var db = new SaludOcupacionalEntities()) { cantPatronos = (from d in db.Comision join r in db.Representante on d.idComision equals r.idComision where d.idComision == model.idComision && r.tipo == 0 && r.estado == 1 select d.idCentroDeTrabajo).Count(); cantTrabajadores = (from d in db.Comision join r in db.Representante on d.idComision equals r.idComision where d.idComision == model.idComision && r.tipo == 1 && r.estado == 1 select d.idCentroDeTrabajo).Count(); } /* Comparación que actualiza el mensaje de recordatorio al usuario de comisión, para que tenga * ingresados al sistema una cantidad bipartita de patronos o trabajadores. Que esto se cumpla es * deber del usuario que utiliza el sistema.*/ if (cantPatronos != cantTrabajadores) { ViewBag.RepresentantesWarning = "Su comisión no tiene cantidades iguales de Patronos y Trabajadores, por favor asegúrese de que esto se cumpla."; } return(View(model)); }
public static IEnumerable <DateTime> GetRecurrenceDateCollection(string RRule, DateTime RecStartDate, string RecException, int NeverCount) { List <DateTime> RecDateCollection = new List <DateTime>(); DateTime startDate = RecStartDate; var ruleSeperator = new[] { '=', ';', ',' }; var weeklySeperator = new[] { ';' }; string[] ruleArray = RRule.Split(ruleSeperator); FindKeyIndex(ruleArray, RecStartDate); string[] weeklyRule = RRule.Split(weeklySeperator); FindWeeklyRule(weeklyRule); if (!RRule.Contains("INTERVAL")) { INTERVAL = "INTERVAL"; INTERVALCOUNT = "1"; } if (RecException != null) { FindExdateList(RecException); } if (ruleArray.Length != 0 && RRule != "") { DateTime addDate = startDate; int recCount; int.TryParse(RECCOUNT, out recCount); #region DAILY if (DAILY == "DAILY") { if ((ruleArray.Length > 4 && INTERVAL == "INTERVAL") || ruleArray.Length == 4) { int DyDayGap = ruleArray.Length == 4 ? 1 : int.Parse(INTERVALCOUNT); if (recCount == 0 && UNTIL == null) { recCount = NeverCount; } if (recCount > 0) { for (int i = 0; i < recCount; i++) { RecDateCollection.Add(addDate.Date); addDate = addDate.AddDays(DyDayGap); } } else if (UNTIL != null) { bool IsUntilDateReached = false; while (!IsUntilDateReached) { RecDateCollection.Add(addDate.Date); addDate = addDate.AddDays(DyDayGap); int statusValue = DateTime.Compare(addDate.Date, Convert.ToDateTime(UNTIL)); if (statusValue != -1) { RecDateCollection.Add(addDate.Date); IsUntilDateReached = true; } } } } } #endregion #region WEEKLY else if (WEEKLY == "WEEKLY") { int WyWeekGap = ruleArray.Length > 4 && INTERVAL == "INTERVAL" ? int.Parse(INTERVALCOUNT) : 1; bool isweeklyselected = weeklyRule[WEEKLYBYDAYPOS].Length > 6; if (recCount == 0 && UNTIL == null) { recCount = NeverCount; } if (recCount > 0) { while (RecDateCollection.Count < recCount && isweeklyselected) { GetWeeklyDateCollection(addDate, weeklyRule, RecDateCollection); addDate = addDate.DayOfWeek == DayOfWeek.Saturday ? addDate.AddDays(((WyWeekGap - 1) * 7) + 1) : addDate.AddDays(1); } } else if (UNTIL != null) { bool IsUntilDateReached = false; while (!IsUntilDateReached && isweeklyselected) { GetWeeklyDateCollection(addDate, weeklyRule, RecDateCollection); addDate = addDate.DayOfWeek == DayOfWeek.Saturday ? addDate.AddDays(((WyWeekGap - 1) * 7) + 1) : addDate.AddDays(1); int statusValue = DateTime.Compare(addDate.Date, Convert.ToDateTime(UNTIL)); if (statusValue != -1) { IsUntilDateReached = true; } } } } #endregion #region MONTHLY else if (MONTHLY == "MONTHLY") { int MyMonthGap = ruleArray.Length > 4 && INTERVAL == "INTERVAL" ? int.Parse(INTERVALCOUNT) : 1; int position = ruleArray.Length > 4 && INTERVAL == "INTERVAL" ? 6 : BYMONTHDAYPOSITION; if (BYMONTHDAY == "BYMONTHDAY") { int monthDate = int.Parse(BYMONTHDAYCOUNT); if (monthDate <= 30) { int currDate = int.Parse(startDate.Day.ToString()); var temp = new DateTime(addDate.Year, addDate.Month, monthDate); addDate = monthDate < currDate?temp.AddMonths(1) : temp; if (recCount == 0 && UNTIL == null) { recCount = NeverCount; } if (recCount > 0) { for (int i = 0; i < recCount; i++) { addDate = GetByMonthDayDateCollection(addDate, RecDateCollection, monthDate, MyMonthGap); } } else if (UNTIL != null) { bool IsUntilDateReached = false; while (!IsUntilDateReached) { addDate = GetByMonthDayDateCollection(addDate, RecDateCollection, monthDate, MyMonthGap); int statusValue = DateTime.Compare(addDate.Date, Convert.ToDateTime(UNTIL)); if (statusValue != -1) { IsUntilDateReached = true; } } } } else { if (recCount == 0 && UNTIL == null) { recCount = NeverCount; } if (recCount > 0) { for (int i = 0; i < recCount; i++) { if (addDate.Day == startDate.Day) { RecDateCollection.Add(addDate.Date); } else { i = i - 1; } addDate = addDate.AddMonths(MyMonthGap); addDate = new DateTime(addDate.Year, addDate.Month, DateTime.DaysInMonth(addDate.Year, addDate.Month)); } } else if (UNTIL != null) { bool IsUntilDateReached = false; while (!IsUntilDateReached) { if (addDate.Day == startDate.Day) { RecDateCollection.Add(addDate.Date); } addDate = addDate.AddMonths(MyMonthGap); addDate = new DateTime(addDate.Year, addDate.Month, DateTime.DaysInMonth(addDate.Year, addDate.Month)); int statusValue = DateTime.Compare(addDate.Date, Convert.ToDateTime(UNTIL)); if (statusValue != -1) { IsUntilDateReached = true; } } } } } else if (BYDAY == "BYDAY") { if (recCount == 0 && UNTIL == null) { recCount = NeverCount; } if (recCount > 0) { while (RecDateCollection.Count < recCount) { var weekCount = MondaysInMonth(addDate); var monthStart = new DateTime(addDate.Year, addDate.Month, 1); DateTime weekStartDate = monthStart.AddDays(-(int)(monthStart.DayOfWeek)); var monthStartWeekday = (int)(monthStart.DayOfWeek); int nthweekDay = GetWeekDay(BYDAYVALUE) - 1; int nthWeek; int bySetPos = 0; int setPosCount; int.TryParse(BYSETPOSCOUNT, out setPosCount); if (monthStartWeekday <= nthweekDay) { if (setPosCount < 1) { bySetPos = weekCount + setPosCount; } else { bySetPos = setPosCount; } if (setPosCount < 0) { nthWeek = bySetPos; } else { nthWeek = bySetPos - 1; } } else { if (setPosCount < 0) { bySetPos = weekCount + setPosCount; } else { bySetPos = setPosCount; } nthWeek = bySetPos; } addDate = weekStartDate.AddDays((nthWeek) * 7); addDate = addDate.AddDays(nthweekDay); if (addDate.CompareTo(startDate.Date) < 0) { addDate = addDate.AddMonths(1); continue; } if (weekCount == 6 && addDate.Day == 23) { int days = DateTime.DaysInMonth(addDate.Year, addDate.Month); bool flag = true; if (addDate.Month == 2) { flag = false; } if (flag) { addDate = addDate.AddDays(7); RecDateCollection.Add(addDate.Date); } addDate = addDate.AddMonths(MyMonthGap); } else if (weekCount == 6 && addDate.Day == 24) { int days = DateTime.DaysInMonth(addDate.Year, addDate.Month); bool flag = true; if (addDate.AddDays(7).Day != days) { flag = false; } if (flag) { addDate = addDate.AddDays(7); RecDateCollection.Add(addDate.Date); } addDate = addDate.AddMonths(MyMonthGap); } else if (!(addDate.Day <= 23 && int.Parse(BYSETPOSCOUNT) == -1)) { RecDateCollection.Add(addDate.Date); addDate = addDate.AddMonths(MyMonthGap); } } } else if (UNTIL != null) { bool IsUntilDateReached = false; while (!IsUntilDateReached) { var weekCount = MondaysInMonth(addDate); var monthStart = new DateTime(addDate.Year, addDate.Month, 1); DateTime weekStartDate = monthStart.AddDays(-(int)(monthStart.DayOfWeek)); var monthStartWeekday = (int)(monthStart.DayOfWeek); int nthweekDay = GetWeekDay(BYDAYVALUE) - 1; int nthWeek; int bySetPos = 0; int setPosCount; int.TryParse(BYSETPOSCOUNT, out setPosCount); if (monthStartWeekday <= nthweekDay) { if (setPosCount < 1) { bySetPos = weekCount + setPosCount; } else { bySetPos = setPosCount; } if (setPosCount < 0) { nthWeek = bySetPos; } else { nthWeek = bySetPos - 1; } } else { if (setPosCount < 0) { bySetPos = weekCount + setPosCount; } else { bySetPos = setPosCount; } nthWeek = bySetPos; } addDate = weekStartDate.AddDays((nthWeek) * 7); addDate = addDate.AddDays(nthweekDay); if (addDate.CompareTo(startDate.Date) < 0) { addDate = addDate.AddMonths(1); continue; } if (weekCount == 6 && addDate.Day == 23) { int days = DateTime.DaysInMonth(addDate.Year, addDate.Month); bool flag = true; if (addDate.Month == 2) { flag = false; } if (flag) { addDate = addDate.AddDays(7); RecDateCollection.Add(addDate.Date); } addDate = addDate.AddMonths(MyMonthGap); } else if (weekCount == 6 && addDate.Day == 24) { int days = DateTime.DaysInMonth(addDate.Year, addDate.Month); bool flag = true; if (addDate.AddDays(7).Day != days) { flag = false; } if (flag) { addDate = addDate.AddDays(7); RecDateCollection.Add(addDate.Date); } addDate = addDate.AddMonths(MyMonthGap); } else if (!(addDate.Day <= 23 && int.Parse(BYSETPOSCOUNT) == -1)) { RecDateCollection.Add(addDate.Date); addDate = addDate.AddMonths(MyMonthGap); } int statusValue = DateTime.Compare(addDate.Date, Convert.ToDateTime(UNTIL)); if (statusValue != -1) { IsUntilDateReached = true; } } } } } #endregion #region YEARLY else if (YEARLY == "YEARLY") { int YyYearGap = ruleArray.Length > 4 && INTERVAL == "INTERVAL" ? int.Parse(INTERVALCOUNT) : 1; int position = ruleArray.Length > 4 && INTERVAL == "INTERVAL" ? 6 : BYMONTHDAYPOSITION; if (BYMONTHDAY == "BYMONTHDAY") { int monthIndex = int.Parse(BYMONTHCOUNT); int dayIndex = int.Parse(BYMONTHDAYCOUNT); if (monthIndex > 0 && monthIndex <= 12) { int bound = DateTime.DaysInMonth(addDate.Year, monthIndex); if (bound >= dayIndex) { var specificDate = new DateTime(addDate.Year, monthIndex, dayIndex); if (specificDate.Date < addDate.Date) { addDate = specificDate; addDate = addDate.AddYears(1); } else { addDate = specificDate; } if (recCount == 0 && UNTIL == null) { recCount = NeverCount; } if (recCount > 0) { for (int i = 0; i < recCount; i++) { RecDateCollection.Add(addDate.Date); addDate = addDate.AddYears(YyYearGap); } } else if (UNTIL != null) { bool IsUntilDateReached = false; while (!IsUntilDateReached) { RecDateCollection.Add(addDate.Date); addDate = addDate.AddYears(YyYearGap); int statusValue = DateTime.Compare(addDate.Date, Convert.ToDateTime(UNTIL)); if (statusValue != -1) { IsUntilDateReached = true; } } } } } } else if (BYDAY == "BYDAY") { int monthIndex = int.Parse(BYMONTHCOUNT); if (recCount == 0 && UNTIL == null) { recCount = NeverCount; } if (recCount > 0) { while (RecDateCollection.Count < recCount) { var weekCount = MondaysInMonth(addDate); var monthStart = new DateTime(addDate.Year, monthIndex, 1); DateTime weekStartDate = monthStart.AddDays(-(int)(monthStart.DayOfWeek)); var monthStartWeekday = (int)(monthStart.DayOfWeek); int nthweekDay = GetWeekDay(BYDAYVALUE) - 1; int nthWeek; int bySetPos = 0; int setPosCount; int.TryParse(BYSETPOSCOUNT, out setPosCount); if (monthStartWeekday <= nthweekDay) { if (setPosCount < 1) { bySetPos = weekCount + setPosCount; } else { bySetPos = setPosCount; } if (setPosCount < 0) { nthWeek = bySetPos; } else { nthWeek = bySetPos - 1; } } else { if (setPosCount < 0) { bySetPos = weekCount + setPosCount; } else { bySetPos = setPosCount; } nthWeek = bySetPos; } addDate = weekStartDate.AddDays((nthWeek) * 7); addDate = addDate.AddDays(nthweekDay); if (addDate.CompareTo(startDate.Date) < 0) { addDate = addDate.AddYears(1); continue; } if (weekCount == 6 && addDate.Day == 23) { int days = DateTime.DaysInMonth(addDate.Year, addDate.Month); bool flag = true; if (addDate.Month == 2) { flag = false; } if (flag) { addDate = addDate.AddDays(7); RecDateCollection.Add(addDate.Date); } addDate = addDate.AddYears(YyYearGap); } else if (weekCount == 6 && addDate.Day == 24) { int days = DateTime.DaysInMonth(addDate.Year, addDate.Month); bool flag = true; if (addDate.AddDays(7).Day != days) { flag = false; } if (flag) { addDate = addDate.AddDays(7); RecDateCollection.Add(addDate.Date); } addDate = addDate.AddYears(YyYearGap); } else if (!(addDate.Day <= 23 && int.Parse(BYSETPOSCOUNT) == -1)) { RecDateCollection.Add(addDate.Date); addDate = addDate.AddYears(YyYearGap); } } } else if (UNTIL != null) { bool IsUntilDateReached = false; while (!IsUntilDateReached) { var weekCount = MondaysInMonth(addDate); var monthStart = new DateTime(addDate.Year, monthIndex, 1); DateTime weekStartDate = monthStart.AddDays(-(int)(monthStart.DayOfWeek)); var monthStartWeekday = (int)(monthStart.DayOfWeek); int nthweekDay = GetWeekDay(BYDAYVALUE) - 1; int nthWeek; int bySetPos = 0; int setPosCount; int.TryParse(BYSETPOSCOUNT, out setPosCount); if (monthStartWeekday <= nthweekDay) { if (setPosCount < 1) { bySetPos = weekCount + setPosCount; } else { bySetPos = setPosCount; } if (setPosCount < 0) { nthWeek = bySetPos; } else { nthWeek = bySetPos - 1; } } else { if (setPosCount < 0) { bySetPos = weekCount + setPosCount; } else { bySetPos = setPosCount; } nthWeek = bySetPos; } addDate = weekStartDate.AddDays((nthWeek) * 7); addDate = addDate.AddDays(nthweekDay); if (addDate.CompareTo(startDate.Date) < 0) { addDate = addDate.AddYears(1); continue; } if (weekCount == 6 && addDate.Day == 23) { int days = DateTime.DaysInMonth(addDate.Year, addDate.Month); bool flag = true; if (addDate.Month == 2) { flag = false; } if (flag) { addDate = addDate.AddDays(7); RecDateCollection.Add(addDate.Date); } addDate = addDate.AddYears(YyYearGap); } else if (weekCount == 6 && addDate.Day == 24) { int days = DateTime.DaysInMonth(addDate.Year, addDate.Month); bool flag = true; if (addDate.AddDays(7).Day != days) { flag = false; } if (flag) { addDate = addDate.AddDays(7); RecDateCollection.Add(addDate.Date); } addDate = addDate.AddYears(YyYearGap); } else if (!(addDate.Day <= 23 && int.Parse(BYSETPOSCOUNT) == -1)) { RecDateCollection.Add(addDate.Date); addDate = addDate.AddYears(YyYearGap); } int statusValue = DateTime.Compare(addDate.Date, Convert.ToDateTime(UNTIL)); if (statusValue != -1) { IsUntilDateReached = true; } } } } } #endregion } var filteredDates = RecDateCollection.Except(exDateList).ToList(); return(filteredDates); }
/// <summary> /// 获取检测数据 /// </summary> /// <param name="userID"></param> /// <returns></returns> public DataSet GetMonitorData(DataTable dtQuery, DataSet combine = null) { DataTable tb_combine = new DataTable("combine") { Columns = { { "mt_code", typeof(string) } } }; if (combine != null && combine.Tables.Contains("combine")) { tb_combine = combine.Tables["combine"]; } DataRow dr = dtQuery.Rows[0]; int NowPage = dr.GetDataRowIntValue("now_page", 1); int PageSize = dr.GetDataRowIntValue("page_size"); string userID = dr["user_id"].ToString(); string mt_code = dr["mt_code"].ToString(); string mt_time = dr["mt_time"].ToString(); if (mt_code == "99") { if (tb_combine.Rows.Count == 0) { mt_code = "100"; tb_combine.Rows.Add(tb_combine.NewRow()); tb_combine.Rows[0]["mt_code"] = "101"; } else { mt_code = tb_combine.Rows[0]["mt_code"].ToString(); tb_combine.Rows.RemoveAt(0); } } string wherestr = " and a.mt_code='" + mt_code + "' "; string sql = "select MAX(mt_time) as max_time from tmo_monitor where user_id='" + userID + "' and mt_code='" + mt_code + "'"; if (mt_time != string.Empty && mt_time != "0") { DateTime maxTime = DateTime.Now; object ot = MySQLHelper.QuerySingle(sql); if (ot != null) { maxTime = Convert.ToDateTime(ot); } string time = ""; if (mt_time == "1") { time = maxTime.AddDays(-3).ToString(); } if (mt_time == "2") { time = maxTime.AddMonths(-1).ToString(); } if (mt_time == "3") { time = maxTime.AddMonths(-3).ToString(); } if (mt_time == "4") { time = maxTime.AddYears(-1).ToString(); } if (time != "") { wherestr += "and a.mt_time>='" + time + "' "; } } StringBuilder strSql = new StringBuilder(); StringBuilder strWhere = new StringBuilder(); StringBuilder groupStr = new StringBuilder(); strSql.Append( "select id,a.mt_code,user_id,mt_valueint,mt_normalrange, mt_valuefloat,mt_valuetext,mt_isnormal,mt_time, mt_timestamp,a.input_time,mt_unit from"); strWhere.Append(" tmo_monitor as a LEFT JOIN tmo_dicmonitor as b on a.mt_code=b.mt_code where user_id='" + userID + "'" + wherestr); groupStr.Append(" order by mt_time desc "); DataSet dsSel = tmoCommonDal.GetPagingData(strSql, strWhere, groupStr.ToString(), PageSize, NowPage); if (dsSel != null && combine != null) { if (combine.Tables.Contains("dt")) { foreach (DataRow row in combine.Tables["dt"].Rows) { dsSel.Tables["dt"].Rows.Add(row.ItemArray); } } if (combine.Tables.Contains("Count")) { dsSel.Tables["Count"].Rows[0]["totalRowCount"] = dsSel.Tables["Count"].Rows[0].GetDataRowIntValue("totalRowCount") + combine.Tables["Count"].Rows[0].GetDataRowIntValue("totalRowCount"); } } if (tb_combine.Rows.Count > 0) { if (dsSel == null) { dsSel = new DataSet("tmodata"); } dsSel.Tables.Add(tb_combine); dsSel = GetMonitorData(dtQuery, dsSel); } return(dsSel); }
public void DisplayDateRangeEnd() { Calendar calendar = new Calendar(); DateTime value = new DateTime(2000, 1, 30); calendar.DisplayDate = value; calendar.DisplayDateEnd = value; calendar.DisplayDateStart = value; Assert.IsTrue(CompareDates(calendar.DisplayDateStart.Value, value)); Assert.IsTrue(CompareDates(calendar.DisplayDateEnd.Value, value)); value = value.AddMonths(2); calendar.DisplayDateStart = value; Assert.IsTrue(CompareDates(calendar.DisplayDateStart.Value, value)); Assert.IsTrue(CompareDates(calendar.DisplayDateEnd.Value, value)); Assert.IsTrue(CompareDates(calendar.DisplayDate, value)); }
}// end of Page_Load protected void odswiez() { try { DateTime dTime = DateTime.Now; dTime = dTime.AddMonths(-1); if (Date1.Text.Length == 0) { Date1.Text = dTime.Year.ToString() + "-" + dTime.Month.ToString("D2") + "-01"; } if (Date2.Text.Length == 0) { Date2.Text = dTime.Year.ToString() + "-" + dTime.Month.ToString("D2") + "-" + DateTime.DaysInMonth(dTime.Year, dTime.Month).ToString("D2"); } Session["data_1"] = Date1.Text.Trim(); Session["data_2"] = Date2.Text.Trim(); } catch { } string id_dzialu = (string)Session["id_dzialu"]; // string txt = string.Empty; // try { DataTable tabelka01 = dr.generuj_dane_do_tabeli_wierszy2018(Date1.Date, Date2.Date, (string)Session["id_dzialu"], 1, 1, 12, tenPlik); Session["tabelka002"] = tabelka01; //row 1 tab_01_w01_c01.Text = tabelka01.Rows[0][1].ToString(); tab_01_w01_c02.Text = tabelka01.Rows[0][2].ToString(); tab_01_w01_c03.Text = tabelka01.Rows[0][3].ToString(); tab_01_w01_c04.Text = tabelka01.Rows[0][4].ToString(); tab_01_w01_c05.Text = tabelka01.Rows[0][5].ToString(); tab_01_w01_c06.Text = tabelka01.Rows[0][6].ToString(); tab_01_w01_c07.Text = tabelka01.Rows[0][7].ToString(); tab_01_w01_c08.Text = tabelka01.Rows[0][8].ToString(); tab_01_w01_c09.Text = tabelka01.Rows[0][9].ToString(); tab_01_w01_c10.Text = tabelka01.Rows[0][10].ToString(); tab_01_w01_c11.Text = tabelka01.Rows[0][11].ToString(); tab_01_w01_c12.Text = tabelka01.Rows[0][12].ToString(); } catch (Exception ex) { cm.log.Error(tenPlik + " " + ex); } try { DataTable tabelka01 = dr.generuj_dane_do_tabeli_wierszy2018(Date1.Date, Date2.Date, (string)Session["id_dzialu"], 2, 1, 12, tenPlik); Session["tabelka001"] = tabelka01; //row 1 tab_02_w01_c01.Text = tabelka01.Rows[0][1].ToString(); tab_02_w01_c02.Text = tabelka01.Rows[0][2].ToString(); tab_02_w01_c03.Text = tabelka01.Rows[0][3].ToString(); tab_02_w01_c04.Text = tabelka01.Rows[0][4].ToString(); tab_02_w01_c05.Text = tabelka01.Rows[0][5].ToString(); tab_02_w01_c06.Text = tabelka01.Rows[0][6].ToString(); tab_02_w01_c07.Text = tabelka01.Rows[0][7].ToString(); tab_02_w01_c08.Text = tabelka01.Rows[0][8].ToString(); tab_02_w01_c09.Text = tabelka01.Rows[0][9].ToString(); tab_02_w01_c10.Text = tabelka01.Rows[0][10].ToString(); tab_02_w01_c11.Text = tabelka01.Rows[0][11].ToString(); tab_02_w01_c12.Text = tabelka01.Rows[0][12].ToString(); tab_02_w01_c13.Text = tabelka01.Rows[0][13].ToString(); tab_02_w01_c14.Text = tabelka01.Rows[0][14].ToString(); } catch (Exception ex) { cm.log.Error(tenPlik + " " + ex); } try { DataTable tabelka01 = dr.generuj_dane_do_tabeli_wierszy2018(Date1.Date, Date2.Date, (string)Session["id_dzialu"], 3, 1, 12, tenPlik); Session["tabelka003"] = tabelka01; //row 1 tab_03_w01_c01.Text = tabelka01.Rows[0][1].ToString(); tab_03_w01_c02.Text = tabelka01.Rows[0][2].ToString(); tab_03_w01_c03.Text = tabelka01.Rows[0][3].ToString(); tab_03_w01_c04.Text = tabelka01.Rows[0][4].ToString(); tab_03_w01_c05.Text = tabelka01.Rows[0][5].ToString(); tab_03_w01_c06.Text = tabelka01.Rows[0][6].ToString(); tab_03_w01_c07.Text = tabelka01.Rows[0][7].ToString(); tab_03_w01_c08.Text = tabelka01.Rows[0][8].ToString(); } catch (Exception ex) { cm.log.Error(tenPlik + " " + ex); } try { DataTable tabelka01 = dr.generuj_dane_do_tabeli_wierszy2018(Date1.Date, Date2.Date, (string)Session["id_dzialu"], 4, 4, 13, tenPlik); Session["tabelka004"] = tabelka01; pisz("tab_4_", 4, 13, tabelka01); } catch (Exception ex) { cm.log.Error(tenPlik + " " + ex); } try { DataTable tabelka01 = dr.generuj_dane_do_tabeli_wierszy2018(Date1.Date, Date2.Date, (string)Session["id_dzialu"], 5, 3, 3, tenPlik); Session["tabelka005"] = tabelka01; pisz("tab_5_", 3, 3, tabelka01); } catch (Exception ex) { cm.log.Error(tenPlik + " " + ex); } // dopasowanie opisów makeLabels(); Label11.Visible = false; try { Label11.Visible = cl.debug(int.Parse(id_dzialu)); } catch {} // Label11.Text = txt; Label3.Text = cl.nazwaSadu((string)Session["id_dzialu"]); }
public ActionResult Mes(string Fecha) { Thread.CurrentThread.CurrentCulture = new CultureInfo("es-CO"); // C# (use instead of DateTime.Now) DateTime Fecha00 = DateTime.UtcNow; Fecha00 = Fecha00.AddHours(-5).Date; ViewBag.fechaC = Fecha; var tem3 = from s in db.Temas select s; if (!String.IsNullOrEmpty(Fecha)) { Fecha00 = DateTime.Parse(Fecha).Date; } var int0 = 0; var int1 = 0; var int2 = 0; var int3 = 0; var int4 = 0; var int5 = 0; var int6 = 0; switch ((int)Fecha00.DayOfWeek) { case 1: int0 = 0; int1 = 1; int2 = 2; int3 = 3; int4 = 4; int5 = 5; int6 = 8; break; case 2: int0 = -1; int1 = 0; int2 = 1; int3 = 2; int4 = 3; int5 = 4; int6 = 5; break; case 3: int0 = -2; int1 = -1; int2 = 0; int3 = 1; int4 = 2; int5 = 3; int6 = 4; break; case 4: int0 = -3; int1 = -2; int2 = -1; int3 = 0; int4 = 1; int5 = 2; int6 = 3; break; case 5: int0 = -4; int1 = -3; int2 = -2; int3 = -1; int4 = 0; int5 = 1; int6 = 2; break; case 6: int0 = -5; int1 = -4; int2 = -3; int3 = -2; int4 = -1; int5 = 0; int6 = 1; break; case 0: int0 = -6; int1 = -5; int2 = -4; int3 = -3; int4 = -2; int5 = -1; int6 = 0; break; } switch (Fecha00.Month) { case 1: ViewBag.Mes = "Enero"; break; case 2: ViewBag.Mes = "Febrero"; break; case 3: ViewBag.Mes = "Marzo"; break; case 4: ViewBag.Mes = "Abril"; break; case 5: ViewBag.Mes = "Mayo"; break; case 6: ViewBag.Mes = "Junio"; break; case 7: ViewBag.Mes = "Julio"; break; case 8: ViewBag.Mes = "Agosto"; break; case 9: ViewBag.Mes = "Septiembre"; break; case 10: ViewBag.Mes = "Octubre"; break; case 11: ViewBag.Mes = "Noviembre"; break; case 12: ViewBag.Mes = "Diciembre"; break; } Fecha00 = DateTime.Parse(Fecha00.Year.ToString() + "-" + Fecha00.Month.ToString() + "-01"); var Fecha01 = Fecha00.AddMonths(-1); var Fecha02 = Fecha00.AddMonths(1); var strweek = (int)Fecha00.DayOfWeek; var currentCulture = CultureInfo.CurrentCulture; var weekNo = currentCulture.Calendar.GetWeekOfYear(Fecha00, currentCulture.DateTimeFormat.CalendarWeekRule, currentCulture.DateTimeFormat.FirstDayOfWeek); ViewBag.Mes = ViewBag.Mes.ToString() + " Semana " + weekNo.ToString() + " Día:" + strweek.ToString(); ViewBag.intweek = strweek; tem3 = tem3.Where(s => s.FechaHora > Fecha01 && s.FechaHora < Fecha02); ViewBag.fecha1 = Fecha01; ViewBag.fecha2 = Fecha02; ViewBag.fecha = Fecha00.Date.ToLongDateString(); var Intdaysmenos = strweek; //ViewBag.FechaI = Fecha00.AddDays(Intdaysmenos); ViewBag.FechaI = Fecha00; var Fecha1 = Fecha01.Date.ToLongDateString(); var Fecha2 = Fecha02.Date.ToLongDateString(); ViewBag.dia1 = Fecha1.ToString().Split(','); ViewBag.dia2 = Fecha2.ToString().Split(','); // Se saca la parte var IdUser = ""; if (User.Identity.IsAuthenticated) { string currentUserId = User.Identity.GetUserId(); IdUser = currentUserId; } //if (IdUser != null && !User.IsInRole("Admin")) //{ tem3 = tem3.Where(s => s.UserId.Equals(IdUser)); tem3 = tem3.OrderBy(s => s.FechaHora).ThenBy(s => s.Prioridad.Orden); //} //ViewBag.Semana = "Semana 48"; return(View(tem3)); }
/// <summary> /// Increases Month /// </summary> /// <param name="sender">Source menu item</param> public static void IncMonth(MenuItem sender) { _setDateTime = _setDateTime.AddMonths(1); RefreshSetDateTimeMenu(); }
private DateTime GetEndDate(DateTime now, TimeInterval interval, int numberOfCandleSticks) { switch (interval) { case TimeInterval.Minutes_1: return(now.AddDays(-5)); break; case TimeInterval.Minutes_3: return(now.AddDays(-5)); break; case TimeInterval.Minutes_5: return(now.AddDays(-5)); break; case TimeInterval.Minutes_15: return(now.AddDays(-5)); break; case TimeInterval.Minutes_30: return(now.AddDays(-5)); break; case TimeInterval.Hours_1: return(now.AddDays(-10)); break; case TimeInterval.Hours_2: return(now.AddDays(-10)); break; case TimeInterval.Hours_4: return(now.AddDays(-50)); break; case TimeInterval.Hours_6: return(now.AddDays(-50)); break; case TimeInterval.Hours_8: return(now.AddDays(-50)); break; case TimeInterval.Hours_12: return(now.AddDays(-50)); break; case TimeInterval.Days_1: return(now.AddDays(-100)); break; case TimeInterval.Days_3: return(now.AddDays(-300)); break; case TimeInterval.Weeks_1: return(now.AddDays(-700)); break; case TimeInterval.Months_1: return(now.AddMonths(-100)); break; default: throw new ArgumentOutOfRangeException(nameof(interval), interval, null); } }
// draws one day in the calendar grid private void DrawMonthCalendarDate (Graphics dc, Rectangle rectangle, MonthCalendar mc, DateTime date, DateTime month, int row, int col) { Color date_color = mc.ForeColor; Rectangle interior = new Rectangle (rectangle.X, rectangle.Y, Math.Max(rectangle.Width - 1, 0), Math.Max(rectangle.Height - 1, 0)); // find out if we are the lead of the first calendar or the trail of the last calendar if (date.Year != month.Year || date.Month != month.Month) { DateTime check_date = month.AddMonths (-1); // check if it's the month before if (check_date.Year == date.Year && check_date.Month == date.Month && row == 0 && col == 0) { date_color = mc.TrailingForeColor; } else { // check if it's the month after check_date = month.AddMonths (1); if (check_date.Year == date.Year && check_date.Month == date.Month && row == mc.CalendarDimensions.Height-1 && col == mc.CalendarDimensions.Width-1) { date_color = mc.TrailingForeColor; } else { return; } } } else { date_color = mc.ForeColor; } const int inflate = -1; if (date == mc.SelectionStart.Date && date == mc.SelectionEnd.Date) { // see if the date is in the start of selection date_color = mc.BackColor; // draw the left hand of the back ground Rectangle selection_rect = Rectangle.Inflate (rectangle, inflate, inflate); dc.FillPie (ResPool.GetSolidBrush (mc.TitleBackColor), selection_rect, 0, 360); } else if (date == mc.SelectionStart.Date) { // see if the date is in the start of selection date_color = mc.BackColor; // draw the left hand of the back ground Rectangle selection_rect = Rectangle.Inflate (rectangle, inflate, inflate); dc.FillPie (ResPool.GetSolidBrush (mc.TitleBackColor), selection_rect, 90, 180); // fill the other side as a straight rect if (date < mc.SelectionEnd.Date) { // use rectangle instead of rectangle to go all the way to edge of rect selection_rect.X = (int) Math.Floor((double)(rectangle.X + rectangle.Width / 2)); selection_rect.Width = Math.Max(rectangle.Right - selection_rect.X, 0); dc.FillRectangle (ResPool.GetSolidBrush (mc.TitleBackColor), selection_rect); } } else if (date == mc.SelectionEnd.Date) { // see if it is the end of selection date_color = mc.BackColor; // draw the left hand of the back ground Rectangle selection_rect = Rectangle.Inflate (rectangle, inflate, inflate); dc.FillPie (ResPool.GetSolidBrush (mc.TitleBackColor), selection_rect, 270, 180); // fill the other side as a straight rect if (date > mc.SelectionStart.Date) { selection_rect.X = rectangle.X; selection_rect.Width = rectangle.Width - (rectangle.Width / 2); dc.FillRectangle (ResPool.GetSolidBrush (mc.TitleBackColor), selection_rect); } } else if (date > mc.SelectionStart.Date && date < mc.SelectionEnd.Date) { // now see if it's in the middle date_color = mc.BackColor; // draw the left hand of the back ground Rectangle selection_rect = Rectangle.Inflate (rectangle, 0, inflate); dc.FillRectangle (ResPool.GetSolidBrush (mc.TitleBackColor), selection_rect); } // establish if it's a bolded font Font font = mc.IsBoldedDate (date) ? mc.bold_font : mc.Font; // just draw the date now dc.DrawString (date.Day.ToString(), font, ResPool.GetSolidBrush (date_color), rectangle, mc.centered_format); // today circle if needed if (mc.ShowTodayCircle && date == DateTime.Now.Date) { DrawTodayCircle (dc, interior); } // draw the selection grid if (mc.is_date_clicked && mc.clicked_date == date) { Pen pen = ResPool.GetDashPen (Color.Black, DashStyle.Dot); dc.DrawRectangle (pen, interior); } }
public virtual string ReturnAxisValueHeader(int element) { DateTime workdate = _start.AddMonths(element); return(workdate.Month + "/" + workdate.Year); }
/// <summary> /// Gets the post archive for the category with the given id. /// </summary> /// <param name="id">The unique category id</param> /// <param name="page">The optional page</param> /// <param name="year">The optional year</param> /// <param name="month">The optional month</param> /// <returns>The archive model</returns> public T GetById <T>(Guid id, int?page = 1, int?year = null, int?month = null) where T : Models.PostArchive { // Get the requested category var category = db.Categories .FirstOrDefault(c => c.Id == id); if (category != null) { // Set basic fields var model = Activator.CreateInstance <T>(); model.Id = id; model.Title = category.ArchiveTitle ?? category.Title; model.Slug = category.Slug; model.MetaDescription = category.ArchiveDescription ?? category.Description; model.Route = !String.IsNullOrEmpty(category.ArchiveRoute) ? category.ArchiveRoute : "/archive"; model.Year = year; model.Month = month; model.Page = Math.Max(1, page.HasValue ? page.Value : 1); // Build the query. var now = DateTime.Now; var query = db.Posts //.Include(p => p.Author) .Include(p => p.Category) .Where(p => p.CategoryId == id && p.Published <= now); if (year.HasValue) { DateTime from; DateTime to; if (month.HasValue) { from = new DateTime(year.Value, month.Value, 1); to = from.AddMonths(1); } else { from = new DateTime(year.Value, 1, 1); to = from.AddYears(1); } query = query.Where(p => p.Published >= from && p.Published < to); } // Get the total page count for the archive model.TotalPages = Math.Max(Convert.ToInt32(Math.Ceiling((double)query.Count() / ArchivePageSize)), 1); model.Page = Math.Min(model.Page, model.TotalPages); // Get the posts var posts = query .OrderBy(p => p.Published) .Skip((model.Page - 1) * ArchivePageSize) .Take(ArchivePageSize) .ToList(); // Map & add the posts within the requested page var mapper = Module.Mapper; foreach (var post in posts) { // Map fields var postModel = mapper.Map <Post, Models.Post>(post); postModel.Category = mapper.Map <Category, Models.CategoryItem>(post.Category); //post.Permalink = $"~/{category.Slug}/{post.Slug}"; // Add to model model.Posts.Add(postModel); } return(model); } return(null); }
static DateAndTimeOfDayModelContext() { DateTime dt = new DateTime(2014, 12, 31); _dateTimes = Enumerable.Range(1, 5).Select(i => new DateAndTimeOfDayModel { Id = i, Birthday = dt.AddYears(i), PublishDay = i % 2 == 0 ? (DateTime?)null : dt.AddMonths(i), CreatedTime = new TimeSpan(0, i, 4, 5, 198), EdmTime = i % 3 == 0 ? (TimeSpan?)null : new TimeSpan(0, 8, i, 5, 198), ResumeTime = new TimeSpan(0, i, 4, 5, 198) }).ToList(); }
/// <summary> /// Альтернатива PAckDocuments на стороне БД ОРЦ (т.е контрольные данные=> приходят поздже). /// Т.к EF6 не поддерживает работу Join с двумя котестами (таблицы находяться на разных серверах)=> /// Возможные варианты (выбран 3) /// 1)Создание view для таблиц из другого сервера /// 2)ковыряние в edmx (необходимо также работа c synonem в SQL) /// 3)Написание SQL прямых заросов и разметка сущностей (теряем обстракцию, т.к необходимо указывать явные имена linkid servers) /// </summary> /// <param name="reportPeriod"></param> /// <param name="preview"></param> /// <param name="shiftPage"></param> /// <returns></returns> public bool PackDocSql(DateTime reportPeriod, IList <ShippingInfoLineDTO> preview, byte shiftPage = 3) { var startDate = reportPeriod.AddDays(-shiftPage).Date; var endDate = reportPeriod.AddMonths(1).AddDays(shiftPage).Date; foreach (var dispatch in preview) { var temp = dispatch; using (this._engage.Uow = new UnitOfWork()) { //для динамического соединения var sapodConn = "[" + this._engage.Uow.GetRepository <v_otpr>().ActiveDbContext.Database.Connection.DataSource + @"].[" + this._engage.Uow.GetRepository <v_otpr>().ActiveDbContext.Database.Connection.Database + @"]"; var orcConn = "[" + this._engage.Uow.GetRepository <krt_Guild18>().ActiveDbContext.Database.Connection.DataSource + @"].[" + this._engage.Uow.GetRepository <krt_Guild18>().ActiveDbContext.Database.Connection.Database + @"]"; var carriages = (temp.WagonsNumbers.Any()) ? string.Join(",", temp.WagonsNumbers.Select(x => $"'{x.n_vag}'")) : string.Empty; //Для mapping требуется точное совпадение имен и типов столбцов //Выбираем с какой стороны работать (сервер) по сущности var result = this._engage.Uow.GetRepository <krt_Guild18>().ActiveDbContext.Database.SqlQuery <krt_Guild18>(@" WITH SubResutl AS ( /*Doc from Invoices*/ SELECT @reportPeriod AS [reportPeriod], vn.[Id] AS [idSapod], null AS [idScroll], null AS [scrollColl], CASE vn.[cod_sbor] WHEN '125' THEN NULL ELSE @warehouse END AS [warehouse], CASE vn.[cod_sbor] WHEN '125' THEN NULL ELSE @id_otpr END AS [idDeliviryNote], CONVERT(tinyint,vn.type_doc) AS [type_doc],@id_otpr AS [idSrcDocument], CONVERT(BIT,CASE WHEN CONVERT(int,left(vn.cod_sbor,3)) IN (166,173,300,301,344) THEN 0 ELSE 1 END) AS [codeType], CONVERT(int,left(vn.[cod_sbor],3)) AS [code], vn.[summa] + vn.[nds] as [sum], NULL AS [parseTextm], CONVERT(decimal(18,2),vn.[nds]/vn.[summa]) as [rateVAT], vn.[id_kart] AS [idCard] FROM " + sapodConn + @".[dbo].[v_nach] AS vn WHERE (vn.[id_otpr] = (@id_otpr) OR vn.[cod_sbor] IN ('125')) AND vn.[type_doc] IN (1,4) AND (vn.[date_raskr] BETWEEN @stDate AND @endDate) AND vn.[cod_kl] IN ('3494','349402') UNION ALL /*Doc from Scrolls*/ SELECT DISTINCT @reportPeriod AS [reportPeriod], vn.[Id] AS [idSapod], null AS [idScroll], null AS [scrollColl], @warehouse AS [warehouse], @id_otpr AS [idDeliviryNote], CONVERT(tinyint,vn.[type_doc]) AS [type_doc], CASE vn.[type_doc] when 2 then vp.[id_ved] ELSE vn.[id_kart] END AS [idSrcDocument], CONVERT(BIT,CASE WHEN CONVERT(int,left(vn.[cod_sbor],3)) IN (166,173,300,301,344) THEN 0 ELSE 1 END) AS [codeType], CONVERT(int,left(vn.[cod_sbor],3)) AS [code], vn.[summa] + vn.[nds] as [sum], CASE CONVERT(int,left(vn.[cod_sbor],3)) WHEN 65 THEN ISNULL(REPLACE(SUBSTRING(REPLACE(RTRIM(LTRIM(CONVERT(VARCHAR(max),vn.[textm]))),' ',''),CHARINDEX(',',REPLACE(RTRIM(LTRIM(CAST(vn.[textm] AS VARCHAR(max)))),' ',''),6),4),',',''),0) ELSE NULL END AS [parseTextm], CONVERT(decimal(18,2),vn.[nds]/vn.[summa]) as [rateVAT], vn.[id_kart] AS [idCard] FROM " + sapodConn + @".[dbo].[v_pam] as vp INNER JOIN " + sapodConn + @".[dbo].[v_pam_vag] AS vpv ON vpv.[id_ved] = vp.[id_ved] INNER JOIN " + sapodConn + @".[dbo].[v_nach] AS vn ON ((vn.[id_kart] = vp.[id_kart] AND vn.[type_doc] = 2) AND vp.[kodkl] IN ('3494','349402')) OR (vn.[date_raskr] IN (convert(date,vpv.[d_pod]),convert(date,vpv.[d_ub])) AND vn.[cod_sbor] = '065' AND vn.[type_doc] = 4) WHERE vpv.[nomvag] IN (" + carriages + @") AND vn.[cod_kl] IN ('3494','349402') AND [state] = 32 AND (vp.[dved] BETWEEN @stDate AND @endDate) UNION ALL /*Doc from Act*/ SELECT @reportPeriod AS [reportPeriod], vn.Id AS [idSapod], null AS [idScroll], null AS [scrollColl], @warehouse AS [warehouse], @id_otpr AS [idDeliviryNote], CONVERT(tinyint,vn.type_doc) AS [type_doc], va.Id AS [idSrcDocument], CONVERT(BIT,CASE WHEN CONVERT(int,left(vn.cod_sbor,3)) IN (166,173,300,301,344) THEN 0 ELSE 1 END) AS [codeType], CONVERT(int,left(vn.cod_sbor,3)) AS [code], vn.summa + vn.nds as [sum], NULL AS [parseTextm], CONVERT(decimal(18,2),vn.nds/vn.summa) as [rateVAT], vn.id_kart AS [idCard] FROM " + sapodConn + @".[dbo].v_akt as va INNER JOIN " + sapodConn + @".[dbo].[v_nach] AS vn ON vn.id_kart = va.id_kart AND vn.type_doc = 3 AND va.kodkl IN ('3494','349402') AND vn.cod_kl IN ('3494','349402') AND [state] = 32 WHERE Exists (SELECT * from " + sapodConn + @".[dbo].v_akt_vag as vav where vav.nomvag IN (" + carriages + @") and va.Id = vav.id_akt) AND (va.dakt BETWEEN @stDate AND @endDate) ) SELECT 0 as [Id], sr.reportPeriod,sr.idSapod, knos.keykrt AS [idScroll],knos.keysbor AS [scrollColl], sr.warehouse, sr.idDeliviryNote,sr.type_doc, sr.idSrcDocument, CONVERT(BIT,CASE WHEN CONVERT(int,sr.codeType) IN (166,173,300,301,344) THEN 0 ELSE 1 END) AS [codeType], sr.code, CASE sr.code WHEN 65 THEN ROUND(ISNULL(ISNULL(knos.sm,sr.[sum]) / cast('' as xml).value('sql:column(" + @"""" + "parseTextm" + @"""" + @") cast as xs:integer ?', 'int') * @countCarriages,0),4) ELSE ISNULL(knos.sm, sr.[sum]) END AS[sum], sr.[rateVat],sr.idCard FROM SubResutl AS sr LEFT JOIN " + orcConn + @".[dbo].[krt_Naftan_orc_sapod] AS knos ON knos.Id = sr.idSapod AND knos.tdoc = sr.type_doc UNION ALL SELECT 0 as [Id], @reportPeriod AS [reportPeriod], knos.Id AS [idSapod], kn.keykrt AS [idScroll],knos.keysbor AS [scrollColl],@warehouse AS [warehouse], NULL AS [idDeliviryNote], tdoc as [type_doc], CASE tdoc when 4 THEN knos.id_kart else NULL END AS [idSrcDocument], CONVERT(BIT,1) AS [codeType], vidsbr AS [code], sm as [sum], CONVERT(decimal(18,2),knos.stnds/100) as [rateVAT],knos.id_kart AS [idCard] FROM " + orcConn + @".[dbo].krt_naftan AS kn INNER JOIN " + orcConn + @".[dbo].krt_Naftan_orc_sapod AS knos ON knos.keykrt = kn.keykrt AND KN.U_KOD = 2 WHERE knos.dt BETWEEN @stDate AND @endDate;", new SqlParameter("@reportPeriod", reportPeriod), new SqlParameter("@warehouse", temp.Warehouse), new SqlParameter("@id_otpr", (temp.Shipping == null) ? 0 : temp.Shipping.id), new SqlParameter("@stDate", startDate), new SqlParameter("@endDate", endDate), new SqlParameter("@countCarriages", temp.WagonsNumbers.Count)).ToList(); try { //Add or Delete foreach (var entity in result) { var e = entity; var item = this._engage.Uow.GetRepository <krt_Guild18>().Get(x => x.reportPeriod == reportPeriod && x.idSapod == e.idSapod && x.scrollColl == e.scrollColl && x.idScroll == e.idScroll && x.idDeliviryNote == e.idDeliviryNote); entity.id = (item == null) ? 0 : item.id; this._engage.Uow.GetRepository <krt_Guild18>().Merge(entity); } this._engage.Uow.Save(); } catch (Exception ex) { this._engage.Log.DebugFormat("Exception: {0}", ex.Message); return(false); } } } return(true); }
protected void ASPxCallbackPanel1_Callback(object sender, DevExpress.Web.CallbackEventArgsBase e) { if (!ASPxCallbackPanel1.IsCallback) { return; } string[] parameters = e.Parameter.Split(';'); if (parameters.Length < 1) { return; } string commandName = parameters[0]; if (commandName == "DeleteAppointmentCommand") { int value = Convert.ToInt32(parameters[1]); ASPxScheduler1.Storage.Appointments.Remove(ASPxScheduler1.Storage.Appointments.GetAppointmentById(value)); ASPxScheduler1.DataBind(); AgendaViewControl1.ReloadData(); } else if (commandName == "SwitchViewToAgendaView") { DateTime selectedIntervalStart = ASPxScheduler1.ActiveView.GetVisibleIntervals().Start; DateTime intervalStart = new DateTime(selectedIntervalStart.Year, selectedIntervalStart.Month, 1); AgendaViewControl1.SelectedInterval = new TimeInterval(intervalStart, intervalStart.AddMonths(1)); } }
/// <summary> /// 与指定的时间计算时间差(date-theDate) /// </summary> /// <param name="theTime">被计算日期</param> /// <param name="date">计算日期</param> /// <param name="calcTime">是事计算时间部分,默认true</param> /// <param name="calcHour">是否计算小时,默认true</param> /// <param name="calcMinute">是否计算分,默认true</param> /// <param name="calcSecond">是否计算秒,默认true</param> /// <returns></returns> public static TimeInfo GetTimeDiff(this DateTime theTime, DateTime date, bool calcTime = true, bool calcHour = true, bool calcMinute = true, bool calcSecond = true) { var timeinfo = new TimeInfo(); timeinfo.Source = theTime; timeinfo.Now = date; DateTime?temp = null; if (date < theTime) { temp = theTime; theTime = date; date = temp.Value; } #region 计算秒 if (calcSecond && calcTime) { timeinfo.Second = date.Second - theTime.Second; if (timeinfo.Second < 0) { timeinfo.Second += 60; timeinfo.Minute -= 1; } } #endregion #region 计算分 if (calcSecond && calcTime) { timeinfo.Minute += date.Minute - theTime.Minute; if (timeinfo.Minute < 0) { timeinfo.Minute += 60; timeinfo.Hour -= 1; } } #endregion #region 计算时 if (calcHour && calcTime) { timeinfo.Hour += date.Hour - theTime.Hour; if (timeinfo.Hour < 0) { timeinfo.Hour += 24; timeinfo.Day -= 1; } } #endregion #region 计算天 var theMonthDays = DateTime.DaysInMonth(theTime.Year, theTime.Month); // 判断出生日期和计算日期是不是都是月份的最后一天 // 出生月总天数大于当前月总天数的月底做满月处理, // 如: 2000-03-31 到 2000-04-30 做为满月,5月份则要31号才做为满月,不计算天数 if (!(theTime.Day + timeinfo.Day == theMonthDays && date.Day == DateTime.DaysInMonth(date.Year, date.Month))) { timeinfo.Day += date.Day - theTime.Day; } if (timeinfo.Day < 0) { var nowPrevMonth = date.AddMonths(-1); // 当前日期上月日期 var prevMonthDays = DateTime.DaysInMonth(nowPrevMonth.Year, nowPrevMonth.Month); // 如果借过来的月的总天数小于被减月份的总天数,则以被减月份的总天数为准 // 如: 2013-01-20 到 2013-03-10 , 此时借的是2月份, 小于出生月1月份的总天数,则天数为 10-20+31=21天 timeinfo.Day += Math.Max(prevMonthDays, theMonthDays); timeinfo.Month -= 1; } #endregion #region 计算月 timeinfo.Month += date.Month - theTime.Month; if (timeinfo.Month < 0) // 月数不足借年 { timeinfo.Month += 12; timeinfo.Year -= 1; } #endregion #region 计算年 timeinfo.Year += date.Year - theTime.Year; #endregion if (temp.HasValue) { timeinfo.Second *= -1; timeinfo.Minute *= -1; timeinfo.Hour *= -1; timeinfo.Day *= -1; timeinfo.Month *= -1; timeinfo.Year *= -1; } return(timeinfo); }
public override DateTime DataZakonczeniaGwarancji(DateTime dataZakupu) { return(dataZakupu.AddMonths(OkresGwarancji + RozszerzenieGwarancji)); }
public void Render(DateTime start, DateTime end) { CtlPresenter.Clear(); byte alpha = 100; var winterColor = Draw.GetBrush(Draw.GetColor(alpha, Colors.White)); var springColor = Draw.GetBrush(Draw.GetColor(alpha, Colors.Blue)); var summerColor = Draw.GetBrush(Draw.GetColor(alpha, Colors.Green)); var autumColor = Draw.GetBrush(Draw.GetColor(alpha, Colors.Yellow)); var year0Color = Draw.GetBrush(Draw.GetColor(255, Colors.WhiteSmoke)); var year1Color = Draw.GetBrush(Draw.GetColor(255, Colors.DarkGray)); var dictMonth = new Dictionary <int, Brush>() { { 1, winterColor }, { 2, winterColor }, { 3, springColor }, { 4, springColor }, { 5, springColor }, { 6, summerColor }, { 7, summerColor }, { 8, summerColor }, { 9, autumColor }, { 10, autumColor }, { 11, autumColor }, { 12, winterColor } }; var dictYear = new Dictionary <int, Brush>() { { 0, year0Color }, { 1, year1Color } }; var width = CtlPresenter.ActualWidth; var height = CtlPresenter.ActualHeight; const double yearHeight = 5; // grid for (DateTime day = start; day <= end; day = day.AddMonths(1)) { double x = GetX(start.Ticks, end.Ticks, day.Ticks); double x2 = GetX(start.Ticks, end.Ticks, day.AddMonths(1).Ticks); CtlPresenter.DrawRectangle(dictMonth[day.Month], penGrid, Rects.Get(x, 0, x2 - x, height - yearHeight)); if (day.Month == 1) { CtlPresenter.DrawLine(penGridYear, Points.Get(x, 0), Points.Get(x, height - yearHeight)); } var fmt = new FormattedText(day.Date.ToString("MMM") + "\r\n" + (day.Date.Year - 2000), Culture.Current, FlowDirection.LeftToRight, Font, 9, Brushes.Black, Tools.Render.PixelsPerDip); CtlPresenter.DrawText(fmt, Points.Get(x + (x2 - x - fmt.Width) / 2, (height - fmt.Height) / 2 - 3)); CtlPresenter.DrawRectangle(dictYear[day.Year % 2], null, Rects.Get(x, height - yearHeight, x2 - x, yearHeight)); } CtlPresenter.DrawLine(penGrid, Points.Get(0, 0), Points.Get(width, 0)); // }
/// <summary> /// Получение данных со стороны БД САПОД (используется для предварительного просмотра текущей документации по накладным) /// </summary> /// <param name="reportPeriod"></param> /// <param name="preview"></param> /// <param name="shiftPage"></param> /// <returns></returns> public bool PackDocuments(DateTime reportPeriod, IList <ShippingInfoLineDTO> preview, byte shiftPage = 3) { var startDate = reportPeriod.AddDays(-shiftPage); var endDate = reportPeriod.AddMonths(1).AddDays(shiftPage); try { //type_doc 1 => one transaction (one request per one dbcontext) List <krt_Guild18> result = (from item in preview join vn in this._engage.GetTable <v_nach, int>(PredicateBuilder.New <v_nach>().DefaultExpression .And(x => x.type_doc == 1 && new[] { "3494", "349402" }.Contains(x.cod_kl)) .And(PredicateExtensions.InnerContainsPredicate <v_nach, int?>("id_otpr", preview.Select(x => (int?)x.Shipping.id))).Expand()) on item.Shipping.id equals vn.id_otpr select new krt_Guild18() { reportPeriod = reportPeriod, warehouse = item.Warehouse, idDeliviryNote = item.Shipping.id, type_doc = 1, idSrcDocument = item.Shipping.id, code = Convert.ToInt32(vn.cod_sbor.Split(new[] { '.', ',' })[0]), sum = (decimal)(vn.summa + vn.nds), rateVAT = Math.Round((decimal)(vn.nds / vn.summa), 2), codeType = new[] { 166, 173, 300, 301, 344 }.Contains(Convert.ToInt32(vn.cod_sbor.Split(new[] { '.', ',' })[0])), idCard = vn.id_kart, idScroll = this._engage.GetGroup <krt_Naftan_orc_sapod, long>(x => x.keykrt, x => x.id_kart == vn.id_kart).Select(y => y.First().keykrt).FirstOrDefault() }).ToList(); foreach (var dispatch in preview) { var shNumbers = dispatch.WagonsNumbers.Select(x => x.n_vag).ToList(); //type_doc 2 =>one transaction (one request per one dbcontext) (type 2 and type_doc 4 (065)) //in memory because not all method support entity to sql => more easy do it in memory using (this._engage.Uow = new UnitOfWork()) { result.AddRange((from vpv in this._engage.Uow.GetRepository <v_pam_vag>().GetAll(x => shNumbers.Contains(x.nomvag), false) join vp in this._engage.Uow.GetRepository <v_pam>().GetAll(x => x.state == 32 && new[] { "3494", "349402" }.Contains(x.kodkl) && x.dved > startDate && x.dved < endDate, false) on vpv.id_ved equals vp.id_ved join vn in this._engage.Uow.GetRepository <v_nach>().GetAll(x => x.type_doc == 2 && new[] { "3494", "349402" }.Contains(x.cod_kl), false) on vp.id_kart equals vn.id_kart select new { vp.id_ved, vn.cod_sbor, vn.summa, vn.nds, vn.id_kart }).Distinct().ToList() .Select(x => new krt_Guild18 { reportPeriod = reportPeriod, warehouse = dispatch.Warehouse, idDeliviryNote = dispatch.Shipping.id, type_doc = 2, idSrcDocument = x.id_ved, code = Convert.ToInt32(x.cod_sbor.Split(new[] { '.', ',' })[0]), sum = (decimal)(x.summa + x.nds), idCard = x.id_kart, rateVAT = Math.Round((decimal)(x.nds / x.summa), 2), codeType = new[] { "166", "173", "300", "301", "344" }.Contains(x.cod_sbor.Split(new[] { '.', ',' })[0]), idScroll = this._engage.GetGroup <krt_Naftan_orc_sapod, long>(y => y.keykrt, z => z.id_kart == x.id_kart).Select(y => y.First().keykrt).FirstOrDefault() })); } //065 using (this._engage.Uow = new UnitOfWork()) { result.AddRange((from vpv in this._engage.Uow.GetRepository <v_pam_vag>().GetAll(x => shNumbers.Contains(x.nomvag), false) join vn in this._engage.Uow.GetRepository <v_nach>() .GetAll(x => x.type_doc == 4 && x.cod_sbor == "065" && new[] { "3494", "349402" }.Contains(x.cod_kl) && x.date_raskr > startDate && x.date_raskr < endDate, false) on new { p1 = vpv.d_pod, p2 = vpv.d_ub } equals new { p1 = vn.date_raskr, p2 = vn.date_raskr } select new { vpv.id_ved, vn.cod_sbor, vn.summa, vn.nds, vn.id_kart }).Distinct().ToList() .Select(x => new krt_Guild18 { reportPeriod = reportPeriod, warehouse = dispatch.Warehouse, idDeliviryNote = dispatch.Shipping.id, type_doc = 4, idSrcDocument = x.id_kart, code = Convert.ToInt32(x.cod_sbor.Split(new[] { '.', ',' })[0]), sum = (decimal)(x.summa + x.nds), idCard = x.id_kart, rateVAT = Math.Round((decimal)(x.nds / x.summa), 2), codeType = new[] { "166", "173", "300", "301", "344" }.Contains(x.cod_sbor.Split(new[] { '.', ',' })[0]), idScroll = this._engage.GetGroup <krt_Naftan_orc_sapod, long>(y => y.keykrt, z => z.id_kart == x.id_kart).Select(y => y.First().keykrt).FirstOrDefault() })); } ////type_doc 3 =>one transaction (one request per one dbcontext) using (this._engage.Uow = new UnitOfWork()) { result.AddRange((from vav in this._engage.Uow.GetRepository <v_akt_vag>().GetAll(x => shNumbers.Contains(x.nomvag), false) join va in this._engage.Uow.GetRepository <v_akt>().GetAll(x => x.state == 32 && new[] { "3494", "349402" }.Contains(x.kodkl) && x.dakt > startDate && x.dakt < endDate, false) on vav.id_akt equals va.id join vn in this._engage.Uow.GetRepository <v_nach>().GetAll(x => x.type_doc == 3 && new[] { "3494", "349402" }.Contains(x.cod_kl), false) on va.id_kart equals vn.id_kart select new { va.id, vn.cod_sbor, vn.summa, vn.nds, vn.id_kart }).Distinct().ToList() .Select(x => new krt_Guild18 { reportPeriod = reportPeriod, warehouse = dispatch.Warehouse, idDeliviryNote = dispatch.Shipping.id, type_doc = 3, idSrcDocument = x.id, code = Convert.ToInt32(x.cod_sbor.Split(new[] { '.', ',' })[0]), sum = (decimal)(x.summa + x.nds), idCard = x.id_kart, rateVAT = Math.Round((decimal)(x.nds / x.summa), 2), codeType = new[] { "166", "173", "300", "301", "344" }.Contains(x.cod_sbor.Split(new[] { '.', ',' })[0]), idScroll = this._engage.GetGroup <krt_Naftan_orc_sapod, long>(y => y.keykrt, z => z.id_kart == x.id_kart).Select(y => y.First().keykrt).FirstOrDefault() })); } //luggage (type_doc 0 or 4) result.AddRange(this._engage.GetTable <krt_Naftan_orc_sapod, long>(x => new[] { 611, 629, 125 }.Contains(x.vidsbr) && x.dt.Month == reportPeriod.Month && x.dt.Year == reportPeriod.Year).ToList() .Select(x => new krt_Guild18 { reportPeriod = reportPeriod, type_doc = x.tdoc, idSrcDocument = (int)x.id_kart, code = x.vidsbr, sum = x.sm, rateVAT = Math.Round((decimal)(x.nds / x.sm_no_nds), 2), codeType = new[] { 166, 173, 300, 301, 344 }.Contains(x.vidsbr), idCard = (int)x.id_kart, idScroll = x.keykrt })); } } catch (Exception) { return(false); } return(true); }
static DateTimeModelContext() { DateTime dt = new DateTime(2014, 12, 31, 20, 12, 30, DateTimeKind.Utc); _dateTimes = Enumerable.Range(1, 5).Select(i => new DateTimeModel { Id = i, BirthdayA = dt.AddYears(i), BirthdayB = dt.AddMonths(i), BirthdayC = new List<DateTime> { dt.AddYears(i), dt.AddMonths(i), dt.AddDays(i) }, BirthdayD = new List<DateTime?> { dt.AddYears(2 * i), null, dt.AddMonths(2 * i) } }).ToList(); }