我試圖計算Tasker中兩個日期之間的星期一,星期三和星期五的數量,因此我需要一個數學公式,可能使用秒錶形式的日期,即unix時間,或一個JavaScript代碼。我嘗試過使用谷歌搜索和任何方式來開始我的大腦,我迷路了,所以我還沒有嘗試過任何東西。我唯一能想到的就是獲得總天數除以7,但這顯然對我無能爲力,特別是如果其中一天或兩天都是週中。任何人都可以將我指向更好的方向嗎?計算日期之間的特定工作日的數量
回答
如何count specific days of the week between two dates in O(1):
// days is an array of weekdays: 0 is Sunday, ..., 6 is Saturday
function countCertainDays(days, d0, d1) {
var ndays = 1 + Math.round((d1-d0)/(24*3600*1000));
var sum = function(a,b) {
return a + Math.floor((ndays + (d0.getDay()+6-b) % 7)/7); };
return days.reduce(sum,0);
}
兩個日期之間的計數週一,週三和週五[1,3,5]
例如:
countCertainDays([1,3,5],new Date(2014,8,1),new Date(2014,8,1)) // 1
countCertainDays([1,3,5],new Date(2014,8,1),new Date(2014,8,2)) // 1
countCertainDays([1,3,5],new Date(2014,8,1),new Date(2014,8,3)) // 2
countCertainDays([1,3,5],new Date(2014,8,1),new Date(2014,8,4)) // 2
countCertainDays([1,3,5],new Date(2014,8,1),new Date(2014,8,5)) // 3
countCertainDays([1,3,5],new Date(2014,8,1),new Date(2014,8,6)) // 3
countCertainDays([1,3,5],new Date(2014,8,1),new Date(2014,8,7)) // 3
注意,本月參數Date
是基於0的,因此2014年9月1日是Date(2014,8,1)
。
假設總天數爲n
。然後一週的任何一天的號碼最初是n/7
。現在採取n = n % 7
。根據當前值n
,您可以輕鬆計算出最終的天數。
作爲例子:
假設你的第一天是Friday
及總天數爲100
。所以,n = 100
。每個工作日的最小100/7
或14
在間隔內。 100 % 7 = 2
。所以最終計數,
Friday -> 14+1 = 15
Saturday -> 14+1 = 15
Sunday -> 14
Monday -> 14
Tuesday -> 14
Wednesday -> 14
Thursday -> 14
@HeatherLeigh,如果我能爲您提供您所期望的確切的事情,我想接受的答案也不會太厲害了,它會? – taufique 2014-08-29 05:54:29
我需要它自動化(因此使用Tasker),因此它可能需要2個日期並輸出它們之間的星期一,星期三和星期五的數量。 – HeatherLeigh 2014-08-29 06:00:06
如何在JavaScript算週五的數量兩個日期之間
function myfunction() {
var frist = document.getElementById("dt_VacStart").value
var answer = 0;
var second = document.getElementById("dt_VacEnd").value;
if (frist != null && second != null) {
var startDate = new Date(frist);
var endDate = new Date(second);
var totalfriday = 0;
for (var i = startDate; i <= endDate;) {
if (i.getDay() ==5) {
totalfriday++;
}
i.setTime(i.getTime() + 1000 * 60 * 60 * 24);
}
document.getElementById('<%=Friday.ClientID%>').value = totalfriday;
} else {
totalfriday = 0;
document.getElementById('<%=Friday.ClientID%>').value = totalfriday;
}
}
- 1. 兩個日期之間的特定日期的數量
- 2. 計算兩個日期之間的工作日
- 3. 可可 - 計算兩個日期之間的工作日
- 4. 兩個日期之間的特定月份/工作日的數量
- 5. 如何計算兩個給定日期之間的工作日數
- 6. 計算日期之間的年/月/日
- 7. PLSQL-估計兩個日期之間的特定工作日小時數
- 8. 如何計算日期範圍與特定日期之間的天數?
- 9. 使用java排除特定日期之間的某些日期之間的天數計算日曆
- 10. 計算兩個日期之間的特定星期幾
- 11. mysql在特定日期之間的特定時間段內計算數據
- 12. 計算日期之間的天數
- 13. 用日期參數計算工作日
- 14. 在日期之間計算
- 15. 如何計算兩個日期之間的總工作時間
- 16. 計算兩個日期之間的工作時間
- 17. 計算MySQL中日期之間的工作時間
- 18. MDX計算量度 - 開始日期和結束日期之間的計數
- 19. 計算日期之間的時間差
- 20. 想要統計兩個日期之間的工作日數
- 21. 如何計算特定年份中兩個日期之間的日期?
- 22. Oracle SQl Dev如何計算兩個日期之間的工作日數
- 23. VB.NET - 計算排除日期之間的兩個日期之間的天數
- 24. 計算特定日期之間的投票
- 25. 在db2中計算兩個日期之間的星期日的數量
- 26. 日期間的計算在兩個日期之間
- 27. 計算特定日期後的星期數量
- 28. Access 2010計算工作日的數量
- 29. 計算日期之間的差異 - Postgres
- 30. C計算日期之間的差異
這非常有用。是否有任何公式可以給出一組日期,這些日期將排除在兩個日期之間或不計算在內? – Poonam 2016-07-20 12:16:44
@Poonam在這種情況下,只是遍歷日期數組,並計算兩個日期之間的數。如果您的情況比這更復雜,請將其作爲單獨問題提交。 – Matt 2016-07-20 16:22:06