jafarpalideh
دوشنبه 06 اسفند 1397, 16:37 عصر
یه فرم دارم :
149831
یه جدول TblTimelyHeader دارم که میام تاریخ و آی دی شیفت و ساعت شروع و پایان شیفت از نوع Time(7) توش نگه میدارم .
تو جدول TblTimelyContent هم میام و بر اساس هر ماشین ساعت شروع و پایان تولید و زمان رگلاژ و زمان استراحت رو وارد میکنم .
که امکان داره به ازای هر ماشین چندین بار رکورد ثبت بشه
حالا خواسته هام اینا:
1- اعتبار سنجی زمان شروع و پایان تولید طبق شیفت (مخصوصا شیفت های که توی دو روز قرار داره)
2 - مجموع زمان تولید و رگلاژ از زمان کل شیفت به ازای هر ماشین بیشتر نشه .
کد پایین بابت اعتبار سنجی داده ورودی رو نوشتم ولی فایده ای نداشته .
private void button1_Click(object sender, EventArgs e)
{
int beginTime = Convert.ToInt32(ShifttimeBegin.Substring(0, 2));
int EndTime = Convert.ToInt32(ShifttimeEnd.Substring(0, 2));
if (RoozBaadi==false)
{
if (Convert.ToInt32(txtHourBegin.Text) < beginTime || Convert.ToInt32(txtHourEnd.Text) > EndTime)
{
MessageBox.Show("ساعت وارد شده در شیفت مورد نظر نمی باشد");
return;
}
}
else
{
int x = 0;
switch (txtHourBegin.Text)
{
case "00":
{
x = 24;
break;
}
case "01":
{
x = 25;
break;
}
case "02":
{
x = 26;
break;
}
case "03":
{
x = 27;
break;
}
case "04":
{
x = 28;
break;
}
case "05":
{
x = 29;
break;
}
case "06":
{
x = 30;
break;
}
case "07":
{
x = 31;
break;
}
default:
x = Convert.ToInt32(txtHourBegin.Text);
break;
}
if (x < beginTime || Convert.ToInt32(txtHourEnd.Text) > EndTime)
{
MessageBox.Show("ساعت وارد شده در شیفت مورد نظر نمی باشد");
return;
}
}
int year = Convert.ToInt32(dateShamsi.Substring(0, 4));
int Month = Convert.ToInt32(dateShamsi.Substring(5, 2));
int Day = Convert.ToInt32(dateShamsi.Substring(8, 2));
int Day1 = Convert.ToInt32(dateShamsi.Substring(8, 2));
System.Globalization.PersianCalendar calendar = new System.Globalization.PersianCalendar();
if (RoozBaadi == true && (txtHourBegin.Text == "00" || txtHourBegin.Text == "01" || txtHourBegin.Text == "02" || txtHourBegin.Text == "03" || txtHourBegin.Text == "04" || txtHourBegin.Text == "05" || txtHourBegin.Text == "06" || txtHourBegin.Text == "07" || txtHourBegin.Text == "08"))
{
Day1++;
}
DateTime dt1 = calendar.ToDateTime(year, Month, Day1, Convert.ToInt32(txtHourBegin.Text.Trim()), Convert.ToInt32(txtMinBegin.Text.Trim()), 0, 0);
if (RoozBaadi == true && (txtHourEnd.Text == "00" || txtHourEnd.Text == "01" || txtHourEnd.Text == "02" || txtHourEnd.Text == "03" || txtHourEnd.Text == "04" || txtHourEnd.Text == "05" || txtHourEnd.Text == "06" || txtHourEnd.Text == "07" || txtHourEnd.Text == "08"))
{
Day++;
}
DateTime dt2 = calendar.ToDateTime(year, Month, Day, Convert.ToInt32(txtHourEnd.Text.Trim()), Convert.ToInt32(txtMinEnd.Text.Trim()), 0, 0);
double totalMinute = (dt2 - dt1).TotalMinutes;
MessageBox.Show(totalMinute.ToString());
}
149831
یه جدول TblTimelyHeader دارم که میام تاریخ و آی دی شیفت و ساعت شروع و پایان شیفت از نوع Time(7) توش نگه میدارم .
تو جدول TblTimelyContent هم میام و بر اساس هر ماشین ساعت شروع و پایان تولید و زمان رگلاژ و زمان استراحت رو وارد میکنم .
که امکان داره به ازای هر ماشین چندین بار رکورد ثبت بشه
حالا خواسته هام اینا:
1- اعتبار سنجی زمان شروع و پایان تولید طبق شیفت (مخصوصا شیفت های که توی دو روز قرار داره)
2 - مجموع زمان تولید و رگلاژ از زمان کل شیفت به ازای هر ماشین بیشتر نشه .
کد پایین بابت اعتبار سنجی داده ورودی رو نوشتم ولی فایده ای نداشته .
private void button1_Click(object sender, EventArgs e)
{
int beginTime = Convert.ToInt32(ShifttimeBegin.Substring(0, 2));
int EndTime = Convert.ToInt32(ShifttimeEnd.Substring(0, 2));
if (RoozBaadi==false)
{
if (Convert.ToInt32(txtHourBegin.Text) < beginTime || Convert.ToInt32(txtHourEnd.Text) > EndTime)
{
MessageBox.Show("ساعت وارد شده در شیفت مورد نظر نمی باشد");
return;
}
}
else
{
int x = 0;
switch (txtHourBegin.Text)
{
case "00":
{
x = 24;
break;
}
case "01":
{
x = 25;
break;
}
case "02":
{
x = 26;
break;
}
case "03":
{
x = 27;
break;
}
case "04":
{
x = 28;
break;
}
case "05":
{
x = 29;
break;
}
case "06":
{
x = 30;
break;
}
case "07":
{
x = 31;
break;
}
default:
x = Convert.ToInt32(txtHourBegin.Text);
break;
}
if (x < beginTime || Convert.ToInt32(txtHourEnd.Text) > EndTime)
{
MessageBox.Show("ساعت وارد شده در شیفت مورد نظر نمی باشد");
return;
}
}
int year = Convert.ToInt32(dateShamsi.Substring(0, 4));
int Month = Convert.ToInt32(dateShamsi.Substring(5, 2));
int Day = Convert.ToInt32(dateShamsi.Substring(8, 2));
int Day1 = Convert.ToInt32(dateShamsi.Substring(8, 2));
System.Globalization.PersianCalendar calendar = new System.Globalization.PersianCalendar();
if (RoozBaadi == true && (txtHourBegin.Text == "00" || txtHourBegin.Text == "01" || txtHourBegin.Text == "02" || txtHourBegin.Text == "03" || txtHourBegin.Text == "04" || txtHourBegin.Text == "05" || txtHourBegin.Text == "06" || txtHourBegin.Text == "07" || txtHourBegin.Text == "08"))
{
Day1++;
}
DateTime dt1 = calendar.ToDateTime(year, Month, Day1, Convert.ToInt32(txtHourBegin.Text.Trim()), Convert.ToInt32(txtMinBegin.Text.Trim()), 0, 0);
if (RoozBaadi == true && (txtHourEnd.Text == "00" || txtHourEnd.Text == "01" || txtHourEnd.Text == "02" || txtHourEnd.Text == "03" || txtHourEnd.Text == "04" || txtHourEnd.Text == "05" || txtHourEnd.Text == "06" || txtHourEnd.Text == "07" || txtHourEnd.Text == "08"))
{
Day++;
}
DateTime dt2 = calendar.ToDateTime(year, Month, Day, Convert.ToInt32(txtHourEnd.Text.Trim()), Convert.ToInt32(txtMinEnd.Text.Trim()), 0, 0);
double totalMinute = (dt2 - dt1).TotalMinutes;
MessageBox.Show(totalMinute.ToString());
}