c# 滿一年增加4天病假,不滿一年增加2天病假,該怎么寫啊
var employee_Name = LeaveSystem_BaseNumBLL.Select();
var employee = BPMU_USERBLL.BPMU_USERSelect1();
foreach (var item in employee)
{
var name = item.Account;
var dateTimeNow = DateTime.Now.Date;
TimeSpan span = new TimeSpan();
var basenum = 0;
span = dateTimeNow - item.JoinDate;
//大于28天可能大于1個月
if (span.TotalDays > 28)
{
//是否月份確實有變化差1個月以上
if (item.JoinDate.Month < dateTimeNow.Month)
{
//判斷需要補加幾個月的
int OneYearMonth = 0;
int OverOneYearMonth = 0;
//判斷入職時間到不到1年
if (span.Days > 365)
{
foreach (var items in employee_Name)
{
//獲取LeaveSystem表的員工名
var names = items.Account;
//判斷BPMU_USER表的員工名與LeaveSystem表的員工名是否相同
if (names == name)
{
//如果相同直接修改天數
LeaveSystem_BaseNumBLL.Update(basenum, names);
}
else
{
//給ID獲取值
string t = Guid.NewGuid().ToString("N");
//轉換型別
string id = t.Substring(0, 32);
//如果不相同把BPMU_USER表的員工名添加到與LeaveSystem表中
LeaveSystem_BaseNumBLL.Add(id, name);
//修改天數
LeaveSystem_BaseNumBLL.Update(basenum, names);
}
}
//for (int OverOneYearMonth)
//{
// Func(adddays, 4)
//}
//加4天
}
else
{
foreach (var items in employee_Name)
{
//獲取LeaveSystem表的員工名
var names = items.Account;
//判斷BPMU_USER表的員工名與LeaveSystem表的員工名是否相同
if (names == name)
{
//如果相同直接修改天數
LeaveSystem_BaseNumBLL.Update(basenum, names);
}
else
{
//給ID獲取值
string t = Guid.NewGuid().ToString("N");
//轉換型別
string id = t.Substring(0, 32);
//如果不相同把BPMU_USER表的員工名添加到與LeaveSystem表中
LeaveSystem_BaseNumBLL.Add(id, name);
//修改天數
LeaveSystem_BaseNumBLL.Update(basenum, names);
}
}
//for (int OneYearMonth)
// Func(adddays, 2)
//加2天
}
}
}
uj5u.com熱心網友回復:
int intDays=0 //天數System.TimeSpan TS = new System.TimeSpan(現在時間-入職時間);
double diffYear= Convert.ToDouble(TS.TotalDays)/365; //取年數帶小數點
intDays=取出diffYear整數位*4;
if(取出diffYear小數位>0)
{
intDays=intDays+2;
}
應該是這個樣子吧
uj5u.com熱心網友回復:
還可以這樣if 取今天月==入職月 并且 今天日+1==入職日
那么天數=(今日年-入職年)*4
if 取今天月<入職月 或者 取今天月==入職月 并且 今天日+1<入職日
那么天數=(今日年-入職年-1)*4+2
if 取今天月>入職月 或者 取今天月==入職月 并且 今天日+1>入職日
那么天數=(今日年-入職年)*4+2
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/14577.html
標籤:ASP.NET
