طبق عکسی که گذاشتید
یک جدول برای نام و مشخصات دستگاه
یک جدول برای مشخصات PM
یک جدول برای دوره انجام
یک جدول برای ثبت سرویس شامل تاریخ شروع، تاریخ پایان، کد دستگاه، کد PM، کد دوره انجام.(به نظر من نیازی به ذخیره همه تاریخ ها در همون ابتدا نیست.)
برای کار با تاریخ از PersianCalendar استفاده کنید
//example
string startDate = "1396/06/09";
string endDate = "1399/12/30";
CultureInfo farsiCultureInfo = new CultureInfo("fa-ir");
DateTime dtStart = DateTime.Parse(startDate, farsiCultureInfo);
DateTime nextDate1DayPeriod = farsiCultureInfo.Calendar.AddDays(dtStart, 1);
DateTime nextDate1WeekPriod = farsiCultureInfo.Calendar.AddWeeks(dtStart, 1);
DateTime nextDate1MonthPeriod = farsiCultureInfo.Calendar.AddMonths(dtStart, 1);
اگر هم نیاز دارید همه تاریخها رو بدست بیارید با یک حلقه میتونید
مثلا دوره های یک هفته ای
//example
string startDate = "1396/06/09";
string endDate = "1399/12/30";
CultureInfo farsiCultureInfo = new CultureInfo("fa-ir");
DateTime dtStart = DateTime.Parse(startDate, farsiCultureInfo);
DateTime dtEnd = DateTime.Parse(endDate, farsiCultureInfo);
List<DateTime> dates = new List<DateTime>();
for (DateTime nextDate = dtStart; nextDate < dtEnd; nextDate = farsiCultureInfo.Calendar.AddWeeks(nextDate, 1))
{
dates.Add(nextDate);
}
listBox1.DataSource = dates;