亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何計算給定日期的星期數?

如何計算給定日期的星期數?

猛跑小豬 2019-10-18 14:45:12
如果我有日期,該如何計算該年中該日期的星期數?例如,在2008年,第1周是1月1日至1月6日,第2周是1月7日至13日,因此,如果我的日期是2008年1月10日,那么我的周數將是2。一種算法非常適合我入門,示例代碼也將有所幫助-我正在Windows上使用C ++進行開發。
查看完整描述

3 回答

?
慕萊塢森

TA貢獻1810條經驗 獲得超4個贊

偽代碼:


int julian = getDayOfYear(myDate)  // Jan 1 = 1, Jan 2 = 2, etc...

int dow = getDayOfWeek(myDate)     // Sun = 0, Mon = 1, etc...

int dowJan1 = getDayOfWeek("1/1/" + thisYear)   // find out first of year's day

// int badWeekNum = (julian / 7) + 1  // Get our week# (wrong!  Don't use this)

int weekNum = ((julian + 6) / 7)   // probably better.  CHECK THIS LINE. (See comments.)

if (dow < dowJan1)                 // adjust for being after Saturday of week #1

    ++weekNum;

return (weekNum)

為了明確起見,此算法假定您按如下方式計算周數:


S  M  T  W  R  F  S

            1  2  3    <-- week #1

4  5  6  7  8  9 10    <-- week #2

[etc.]

getDayOfWeek()和getDayOfYear()是大多數語言中的標準日期對象操作。如果您沒有它們,可以在查明星期幾之后,從某個已知的日期算起(1970年1月1日是常見的日期)。


如果要實現自己的日期計數例程,請記住,可以被100整除的年份不是 leap年,除非它們也可以被400整除。因此1900不是year年,而2000是leap年。如果您要回到較早的時間工作,則必須弄亂公歷日歷和朱利安日歷等,請參閱Wikipedia上的大量信息。


該鏈接更詳細地討論了Windows / C ++中的日期/時間功能。


查看完整回答
反對 回復 2019-10-18
  • 3 回答
  • 0 關注
  • 853 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號