if (DialogResult.No == MessageBox.Show("将要计算" + numericUpDown3.Value.ToString() + "年" + numericUpDown4.Value.ToString() + "月份的住宿费用,请确认!", "提示", MessageBoxButtons.YesNo))
{
return;
}
else
{
//计算月初及月末日期
DateTime yuechu ;
DateTime yuemo;
int beforeYear;
int beforeMouth;
int year = Convert.ToInt32(numericUpDown3.Value);
int mouth= Convert.ToInt32(numericUpDown4.Value);
string yearstring = year.ToString();
string mouthstring = mouth.ToString();
if (mouth <= 1)//如果当前月是一月,那么年份就要减1
{
beforeYear = year - 1;
beforeMouth = 12;//上个月
}
else
{
beforeYear = year;
beforeMouth = mouth - 1;//上个月
}
string yc = beforeYear + "年" + beforeMouth + "月" + 26 + "日";
yuechu= Convert.ToDateTime(yc);
yuemo = yuechu.AddMonths(1);
string selpeople = "select 姓名,工号,区域所属,所属部门,入住时间,退宿时间 from 员工信息表";
pub.xsdgv(selpeople, dataGridView11);
DataTable dt = (DataTable)dataGridView11.DataSource;
dt.Columns.Add("住宿费用");
for (int i = 0; i < dt.Rows.Count; i++)
{
DateTime dtruzhu = Convert.ToDateTime(dataGridView11.Rows[i].Cells[4].Value.ToString());
DateTime dttuisu = Convert.ToDateTime(dataGridView11.Rows[i].Cells[5].Value.ToString());
double zhusufeiyong=0.02;
//计算住宿费用
if (DateTime.Compare(dttuisu, yuechu) <= 0 || DateTime.Compare(yuemo, dtruzhu) <= 0)//月初前退 或月末后入
{
zhusufeiyong = 0;
}
else
{
if (DateTime.Compare(dtruzhu, yuechu) <= 0 && DateTime.Compare(yuemo, dttuisu) <= 0)//月初前入且月末后出,即一整月
{
zhusufeiyong = 50;
}
else
{
if (DateTime.Compare(yuechu, dtruzhu) <= 0 && DateTime.Compare(dttuisu, yuemo) <= 0)//月初后入 月末前出
{
DateTime d3 = Convert.ToDateTime(string.Format("{0}-{1}-{2}", dtruzhu.Year, dtruzhu.Month, dtruzhu.Day));
DateTime d4 = Convert.ToDateTime(string.Format("{0}-{1}-{2}", dttuisu.Year, dttuisu.Month, dttuisu.Day));
int days = (d4 - d3).Days;
zhusufeiyong = 50 * days / 30;
}
else
{
if (DateTime.Compare(dtruzhu, yuechu) <= 0 && DateTime.Compare(dttuisu, yuemo) <= 0) //月初前入 月末前出
{
DateTime d3 = Convert.ToDateTime(string.Format("{0}-{1}-{2}", yuechu.Year, yuechu.Month, yuechu.Day));
DateTime d4 = Convert.ToDateTime(string.Format("{0}-{1}-{2}", dttuisu.Year, dttuisu.Month, dttuisu.Day));
int days = (d4 - d3).Days;
zhusufeiyong = 50 * days / 30;
}
else
{
if (DateTime.Compare(yuechu, dtruzhu) <= 0 && DateTime.Compare(yuemo, dttuisu) <= 0 && DateTime.Compare(dtruzhu,yuemo) <= 0) //月初后入 月末后出
{
DateTime d3 = Convert.ToDateTime(string.Format("{0}-{1}-{2}", dtruzhu.Year, dtruzhu.Month, dtruzhu.Day));
DateTime d4 = Convert.ToDateTime(string.Format("{0}-{1}-{2}", yuemo.Year, yuemo.Month, yuemo.Day));
int days = (d4 - d3).Days;
zhusufeiyong = 50 * days / 30;
}
}
}
}
}
dt.Rows[i]["住宿费用"] = zhusufeiyong;
}
dataGridView11.DataSource = dt;
}
}
{
return;
}
else
{
//计算月初及月末日期
DateTime yuechu ;
DateTime yuemo;
int beforeYear;
int beforeMouth;
int year = Convert.ToInt32(numericUpDown3.Value);
int mouth= Convert.ToInt32(numericUpDown4.Value);
string yearstring = year.ToString();
string mouthstring = mouth.ToString();
if (mouth <= 1)//如果当前月是一月,那么年份就要减1
{
beforeYear = year - 1;
beforeMouth = 12;//上个月
}
else
{
beforeYear = year;
beforeMouth = mouth - 1;//上个月
}
string yc = beforeYear + "年" + beforeMouth + "月" + 26 + "日";
yuechu= Convert.ToDateTime(yc);
yuemo = yuechu.AddMonths(1);
string selpeople = "select 姓名,工号,区域所属,所属部门,入住时间,退宿时间 from 员工信息表";
pub.xsdgv(selpeople, dataGridView11);
DataTable dt = (DataTable)dataGridView11.DataSource;
dt.Columns.Add("住宿费用");
for (int i = 0; i < dt.Rows.Count; i++)
{
DateTime dtruzhu = Convert.ToDateTime(dataGridView11.Rows[i].Cells[4].Value.ToString());
DateTime dttuisu = Convert.ToDateTime(dataGridView11.Rows[i].Cells[5].Value.ToString());
double zhusufeiyong=0.02;
//计算住宿费用
if (DateTime.Compare(dttuisu, yuechu) <= 0 || DateTime.Compare(yuemo, dtruzhu) <= 0)//月初前退 或月末后入
{
zhusufeiyong = 0;
}
else
{
if (DateTime.Compare(dtruzhu, yuechu) <= 0 && DateTime.Compare(yuemo, dttuisu) <= 0)//月初前入且月末后出,即一整月
{
zhusufeiyong = 50;
}
else
{
if (DateTime.Compare(yuechu, dtruzhu) <= 0 && DateTime.Compare(dttuisu, yuemo) <= 0)//月初后入 月末前出
{
DateTime d3 = Convert.ToDateTime(string.Format("{0}-{1}-{2}", dtruzhu.Year, dtruzhu.Month, dtruzhu.Day));
DateTime d4 = Convert.ToDateTime(string.Format("{0}-{1}-{2}", dttuisu.Year, dttuisu.Month, dttuisu.Day));
int days = (d4 - d3).Days;
zhusufeiyong = 50 * days / 30;
}
else
{
if (DateTime.Compare(dtruzhu, yuechu) <= 0 && DateTime.Compare(dttuisu, yuemo) <= 0) //月初前入 月末前出
{
DateTime d3 = Convert.ToDateTime(string.Format("{0}-{1}-{2}", yuechu.Year, yuechu.Month, yuechu.Day));
DateTime d4 = Convert.ToDateTime(string.Format("{0}-{1}-{2}", dttuisu.Year, dttuisu.Month, dttuisu.Day));
int days = (d4 - d3).Days;
zhusufeiyong = 50 * days / 30;
}
else
{
if (DateTime.Compare(yuechu, dtruzhu) <= 0 && DateTime.Compare(yuemo, dttuisu) <= 0 && DateTime.Compare(dtruzhu,yuemo) <= 0) //月初后入 月末后出
{
DateTime d3 = Convert.ToDateTime(string.Format("{0}-{1}-{2}", dtruzhu.Year, dtruzhu.Month, dtruzhu.Day));
DateTime d4 = Convert.ToDateTime(string.Format("{0}-{1}-{2}", yuemo.Year, yuemo.Month, yuemo.Day));
int days = (d4 - d3).Days;
zhusufeiyong = 50 * days / 30;
}
}
}
}
}
dt.Rows[i]["住宿费用"] = zhusufeiyong;
}
dataGridView11.DataSource = dt;
}
}