golang计算时间段内的工作日数量

package main

import (
	"fmt"
	"time"
)

func main() {
	start, _ := time.Parse("2006-01-02", "2021-10-01")
	end, _ := time.Parse("2006-01-02", "2021-10-31")
	total, days := CalcWorkHour(start, end)
	fmt.Println(fmt.Sprintf("总计:%.2f个小时,%d天", total, days))
}

func CalcWorkHour(begin, end time.Time) (float32, int) {
	var workHour = 0.0
	var currentTime = begin
	var workingCount int
	for {
		if currentTime.After(end) {
			break
		}
		// 周六周日
		if currentTime.Weekday() == time.Sunday || currentTime.Weekday() == time.Saturday {
			// nothing
		} else {
			workHour += 8.0
			workingCount++
		}
		currentTime = currentTime.Add(24 * time.Hour)
	}

	return float32(workHour), workingCount
}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值