我正在创建图书馆管理系统.
我使用时间戳来计算日期差异,并在日期差异的帮助下,我也在计算Fine.
现在这个日期差异包括一周中的所有日子.但是对于图书馆申请,罚款应仅在周内收取6天(周一至周六).
我不能这样做
任何人都可以帮我执行这项任务吗?
提前致谢!!
解决方法
实质上,您可以计算原始天数;您需要找到要从该数字中减去的星期日数.你知道每7天是星期天,所以你可以将原始天数除以7,然后从原始天数中减去这个数字.现在你需要删除在周的剩余时间里的星期天数;一天的原始天数将告诉你剩下的日子.要知道这个跨度是否包括星期天,你必须知道第一天的星期几;如果将星期一定义为0,星期二为1,星期三为3等,则如果将跨度开头的星期几的值添加到原始数字的mod(7)天数,如果数字是6或更大,你已经跨越了一个星期天,应该从你的罚款中删除1天.
伪码:
int fine; int numdays = endDay - startDay; fine = numdays - (numdays / 7); int dayOfWeek = startDate.DayOfWeek; if (dayOfWeek + (numdays % 7) > 6) { fine = fine - 1; }