计算工作中请假时间,不计算周六周日

这段代码展示了如何计算两个日期间的工作日数量,不包括周六和周日。通过使用DateTime.Subtract方法获取时间跨度,并结合自定义的GetWeek方法确定日期对应的星期,实现了精确的请假天数计算。
摘要由CSDN通过智能技术生成
代码如下

public int CountTime(DateTime FromDate, DateTime ToDate)
{

TimeSpan ts = FromDate.Subtract(ToDate).Duration();

Days+= Convert.ToInt32(ts.Days.ToString())-1;
int FromWeek = GetWeek(Convert.ToDateTime(FromDateTime).DayOfWeek.ToString());
int ToWeek = GetWeek(Convert.ToDateTime(ToDateTime).DayOfWeek.ToString());
if (ts.Days + FromWeek > 5)
{
Days -= (ts.Days + FromWeek) / 7 * 2;
if ((ts.Days + FromWeek) % 7 == 6)
{
Days -= 1;
}
}

return Days;

在Vue.js计算请假时长,需要排除周六日以及放假日期。可以通过以下步骤来实现: 1.首先,我们需要在Vue组件定义一个请假开始日期和结束日期的数据项,可以使用`data`选项来声明这两个数据项。 2.接下来,我们可以使用Vue提供的日期处理库(如`moment.js`)来进行日期计算。你可以使用`npm`安装moment.js库。 3.在计算请假时长的方法,首先需要判断开始日期和结束日期是否在周六日或放假日期,如果是,则将其排除在外。 4.然后,我们可以使用moment.js库的`diff`方法来计算请假天数。将结束日期与开始日期相减,并将结果放入一个变量。 5.最后,我们可以在Vue模板显示计算出的请假天数。你可以使用插值表达式(`{{}}`)来显示这个变量。 下面是一个简单的Vue组件代码示例: ```javascript <template> <div> <input type="date" v-model="startDate" @input="calculateLeaveDuration" /> <input type="date" v-model="endDate" @input="calculateLeaveDuration" /> <p v-if="leaveDuration !== null">{{ leaveDuration }}天</p> </div> </template> <script> import moment from 'moment'; export default { data() { return { startDate: '', endDate: '', leaveDuration: null, }; }, methods: { calculateLeaveDuration() { // 排除周六日和放假日期 const excludedDates = ['2022-01-01', '2022-01-02']; // 假设这里放假的日期是2022年1月1日和2日 const start = moment(this.startDate); const end = moment(this.endDate); let leaveDuration = end.diff(start, 'days'); // 遍历排除日期并减去请假天数 excludedDates.forEach((date) => { if (moment(date).isBetween(start, end, 'day', '[]')) { leaveDuration--; } }); this.leaveDuration = leaveDuration; }, }, }; </script> ``` 在上面的示例,我们通过在模板使用两个日期输入框来选择请假的开始日期和结束日期。使用`v-model`指令将日期值绑定到Vue实例的数据属性上。 `@input`事件监听日期输入框的输入变化,一旦日期有改变,就会触发`calculateLeaveDuration`方法重新计算请假天数。 `calculateLeaveDuration`方法,我们首先创建了Moment对象来表示开始日期和结束日期。然后使用Moment.js的`diff`方法计算请假天数。 随后,我们遍历排除日期数组,并使用Moment.js的`isBetween`方法判断排除日期是否在请假期间。如果是,则将请假天数减1。 最后,我们将计算出的请假天数赋值给`leaveDuration`属性,并在模板显示出来。 请确保在项目引入和使用Moment.js库。由于Moment.js在2020年停止维护,你也可以考虑使用Day.js等替代方案。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值