//什么都不处理,生成一张整表的 void TotalReportFuc() { SendDate = new AboutDateTime(); SendDate.Sign = "T"; SendDate.BeginDateTime.Add(((DateTime)UC_DateTime_Begin.Value).ToUniversalTime()); SendDate.EndDateTime.Add(((DateTime)UC_DateTime_End.Value).ToUniversalTime()); }
//什么都不处理,生成一张整表的 bool TotalReportFuc() { DateTime StartTime = (DateTime)UC_DateTime_Begin.Value; DateTime EndTime = (DateTime)UC_DateTime_End.Value; if ((EndTime - StartTime).TotalDays >= 92) { ShowInformation(CurrentApp.GetLanguageInfo("6101N0007", "请保证时间范围在三个月以内")); return(false); } SendDate = new AboutDateTime(); SendDate.Sign = "T"; SendDate.BeginDateTime.Add(((DateTime)UC_DateTime_Begin.Value).ToUniversalTime()); SendDate.EndDateTime.Add(((DateTime)UC_DateTime_End.Value).ToUniversalTime()); return(true); }
//日报处理 将选择的时间截取为一天一天的形式 从即时起到当日 23:59分,开始时间也就这么算. void DayReportFunc() { SendDate = new AboutDateTime(); DateTime DTBeginStr = ((DateTime)UC_DateTime_Begin.Value).ToUniversalTime(); DateTime DTEndStr = ((DateTime)UC_DateTime_End.Value).ToUniversalTime(); //标志来了 SendDate.Sign = "D"; //首先判断起始时间的日期是不是在同一天,如果在同一天,那么就生成一天的日报 if (DateDiff(DTBeginStr, DTEndStr) == 0) { SendDate.BeginDateTime.Add(DTBeginStr); SendDate.EndDateTime.Add(DTEndStr); } else { for (int i = 0; i <= DateDiff(DTBeginStr, DTEndStr); i++) { if (i == 0) { SendDate.BeginDateTime.Add(DTBeginStr); } else { SendDate.BeginDateTime.Add(Convert.ToDateTime(DTBeginStr.AddDays(i).ToString("yyyy-MM-dd 00:00:00"))); } if (i != DateDiff(DTBeginStr, DTEndStr)) { SendDate.EndDateTime.Add(Convert.ToDateTime(DTBeginStr.AddDays(i).ToString("yyyy-MM-dd 23:59:59"))); } else { SendDate.EndDateTime.Add(DTEndStr); } } } }
//年报处理 将选择的时间截取为一年一年的形式 void YearReportFunc() { SendDate = new AboutDateTime(); DateTime DTBeginStr = ((DateTime)UC_DateTime_Begin.Value).ToUniversalTime(); DateTime DTEndStr = ((DateTime)UC_DateTime_End.Value).ToUniversalTime(); //标志来了 SendDate.Sign = "Y"; if (YearDiff(DTBeginStr, DTEndStr) == 0) { SendDate.BeginDateTime.Add(DTBeginStr); SendDate.EndDateTime.Add(DTEndStr); } else { for (int i = 0; i <= YearDiff(DTBeginStr, DTEndStr); i++) { if (i == 0) { SendDate.BeginDateTime.Add(DTBeginStr); } else { SendDate.BeginDateTime.Add(Convert.ToDateTime(DTBeginStr.AddYears(i).ToString("yyyy-01-01 00:00:00"))); } if (i != YearDiff(DTBeginStr, DTEndStr)) { SendDate.EndDateTime.Add(Convert.ToDateTime(DTBeginStr.AddYears(i).ToString("yyyy-12-31 23:59:59"))); } else { SendDate.EndDateTime.Add(DTEndStr); } } } }
//月报处理 将选择的时间截取为一月一月的形式 void MonthReportFunc() { SendDate = new AboutDateTime(); DateTime DTBeginStr = ((DateTime)UC_DateTime_Begin.Value).ToUniversalTime(); DateTime DTEndStr = ((DateTime)UC_DateTime_End.Value).ToUniversalTime(); //标志来了 SendDate.Sign = "M"; SendDate.BeginDateTime.Add(DTBeginStr); int Month = S6101App.MonthStart; DateTime YearBefore = DTBeginStr; DateTime YearAfter = DTEndStr; string YearBtemp = DTBeginStr.ToString("yyyy/MM/dd 00:00:00"); string YearAtemp = DTEndStr.ToString("yyyy/MM/dd 23:59:59"); int month = 0; int year = 0; int day = 0; int i = 1; if (DTBeginStr.Day < Month) { i = 0; } //不同年 if (DTBeginStr.Year != DTEndStr.Year) { int Cishu = 12 - DTBeginStr.Month + DTEndStr.Month; for (; i <= Cishu; i++) { month = DTBeginStr.Month + i; year = DTBeginStr.Year; if (month > 12) { month = month - 12; year++; } day = Month; SendDate.BeginDateTime.Add(Convert.ToDateTime(year + "/" + month + "/" + day + " 00:00:00")); if (DTBeginStr.Day < day) { SendDate.EndDateTime.Add(Convert.ToDateTime(SendDate.BeginDateTime[i + 1].AddDays(-1).ToString("yyyy/MM/dd 23:59:59"))); } else { SendDate.EndDateTime.Add(Convert.ToDateTime(SendDate.BeginDateTime[i].AddDays(-1).ToString("yyyy/MM/dd 23:59:59"))); } } } //同年 else {//不同月 if (DTBeginStr.Month != DTEndStr.Month) { for (; i <= DTEndStr.Month - DTBeginStr.Month; i++) { month = DTBeginStr.Month + i; year = DTBeginStr.Year; if (month > 12) { month = month - 12; year++; } day = Month; SendDate.BeginDateTime.Add(Convert.ToDateTime(year + "/" + month + "/" + day + " 00:00:00")); if (DTBeginStr.Day < day) { SendDate.EndDateTime.Add(Convert.ToDateTime(SendDate.BeginDateTime[i + 1].AddDays(-1).ToString("yyyy/MM/dd 23:59:59"))); } else { SendDate.EndDateTime.Add(Convert.ToDateTime(SendDate.BeginDateTime[i].AddDays(-1).ToString("yyyy/MM/dd 23:59:59"))); } } } else { if (DTBeginStr.Day < Month && Month < DTEndStr.Day) { SendDate.BeginDateTime.Add(Convert.ToDateTime(YearBtemp.Substring(0, 8) + Month.ToString() + " 00:00:00")); SendDate.EndDateTime.Add(Convert.ToDateTime(YearBtemp.Substring(0, 8) + Month.ToString() + " 23:59:59")); } } } SendDate.EndDateTime.Add(DTEndStr); }
//周报处理 将选择的时间截取为一周一周的形式,将自己选择的时间按自然周切分,如果不足一周,那么就按一周计算,注意,是自然周,当取得的时间没有被 void WeekReportFunc() { SendDate = new AboutDateTime(); DateTime DTBeginStr = ((DateTime)UC_DateTime_Begin.Value).ToUniversalTime(); DateTime DTEndStr = ((DateTime)UC_DateTime_End.Value).ToUniversalTime(); //标志来了 SendDate.Sign = "W"; int Week = S6101App.WeekStart; var weekdays = new int[7]; int dt1 = (int)DTBeginStr.DayOfWeek; int dt2 = (int)DTEndStr.DayOfWeek; TimeSpan TS12 = DTEndStr - DTBeginStr; SendDate.BeginDateTime.Add(DTBeginStr); if (TS12.Days > 7) { int year = 0; int month = 0; int day = 0; int Cishu = 0; DateTime WeekBefore = DTBeginStr.AddDays(7); DateTime WeekAfter = DTEndStr.AddDays(-7); if (dt1 >= Week) { Cishu++; } if (dt1 != Week) { if (dt1 > Week) { WeekBefore = DTBeginStr.AddDays(7 - dt1 + Week); year = WeekBefore.Year; month = WeekBefore.Month; day = WeekBefore.Day; WeekBefore = Convert.ToDateTime(year + "/" + month + "/" + day + " 00:00:00"); } else { WeekBefore = DTBeginStr.AddDays(7 - Week + dt1); year = WeekBefore.Year; month = WeekBefore.Month; day = WeekBefore.Day; WeekBefore = Convert.ToDateTime(year + "/" + month + "/" + day + " 00:00:00"); } } if (dt2 != Week - 1) { if (dt2 > Week - 1) { WeekAfter = DTEndStr.AddDays(dt2 - Week + 1); year = WeekAfter.Year; month = WeekAfter.Month; day = WeekAfter.Day; WeekAfter = Convert.ToDateTime(year + "/" + month + "/" + day + " 23:59:59"); } else { WeekAfter = DTEndStr.AddDays(8 - Week + dt2); year = WeekAfter.Year; month = WeekAfter.Month; day = WeekAfter.Day; WeekAfter = Convert.ToDateTime(year + "/" + month + "/" + day + " 23:59:59"); } } Cishu += (WeekAfter - WeekBefore).Days / 7; for (int i = 0; i <= Cishu; i++) { SendDate.BeginDateTime.Add(Convert.ToDateTime((WeekBefore.AddDays(7 * i)).ToString("yyyy/MM/dd 00:00:00"))); switch (i) { case 0: SendDate.EndDateTime.Add(Convert.ToDateTime((WeekBefore.AddDays(-1)).ToString("yyyy/MM/dd 23:59:59"))); break; default: SendDate.EndDateTime.Add(Convert.ToDateTime(WeekBefore.AddDays(7 * i - 1).ToString("yyyy/MM/dd 23:59:59"))); break; } } } SendDate.EndDateTime.Add(DTEndStr); }