日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > php >内容正文

php

怎么计算开学第几周php,如何计算开学第几周, 要求每年通用

發布時間:2025/3/21 php 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 怎么计算开学第几周php,如何计算开学第几周, 要求每年通用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

其實是要精確到周即可, 即給定當前時間, 知道是本學期的開學第幾周. 問題的關鍵好像是沒找到規律, 我現在用的是如下代碼(php), 準確度不夠好:

function teachweek ($date){

$timestamp=strtotime($date);

if (date('m', $timestamp)>=9){

return date('W', $timestamp)-35;

}elseif(date('m', $timestamp)<=2){

return date('W', $timestamp)+18;

}else{

return date('W', $timestamp)-7;

}

}

回復內容:

其實是要精確到周即可, 即給定當前時間, 知道是本學期的開學第幾周. 問題的關鍵好像是沒找到規律, 我現在用的是如下代碼(php), 準確度不夠好:

function teachweek ($date){

$timestamp=strtotime($date);

if (date('m', $timestamp)>=9){

return date('W', $timestamp)-35;

}elseif(date('m', $timestamp)<=2){

return date('W', $timestamp)+18;

}else{

return date('W', $timestamp)-7;

}

}

不準確的問題應該出在35、18這幾個數字上,另外,如果9月1日是星期六或者星期日的話,也不能算作第一周,所以,可以先判斷當年9月1日是在第幾周

$thisyear=date('Y',strtotime($date));

$ondate=date('W',strtotime("1 September $thisyear"));

這樣,第四行就能替換成

return date('W', $timestamp)-$ondate+1;

是否+1需要通過對9月1日是否為周六/日判斷確定,這兒具體就不寫了;

如果日期是年初寒假之前,還需要跨年計算去年9月1日到12月31日的周數

$lastyear=date('Y',strtotime($date))-1;

$lastyearweeks=date('W',strtotime("31 December $lastyear"))-date('W',strtotime("1 September $lastyear"))+1;

同樣的,是否+1需要通過對9月1日是否為周六/日判斷確定,這樣,第六行就能替換成

return (date('W', $timestamp)%53)+$lastyearweeks;

同理,確定第二學期開學日期的話,類似思路修改最后一個retrun里的7,即可判斷日期是第二學期的第幾周

你們都被表面需求迷惑了,如果是問當前日期是開學日期的第幾個月,樓主和一樓的邏輯雖然不完全對但是修改一下還是OK的,可是對于第幾周就沒必要了,因為問題的關鍵在于7天是一周。我的偽碼如下

$startDate = 開學日期; //如2016-02-16

$startDay = 開學這天是星期幾; //如3表示周3

$limitDay = 今天是自1970年以來第幾天 - 開學日期是自1970年以來的第幾天; //比如55天

周日當每周的第一天了,此題中考慮這個問題沒什么意義)

$weekNumber = ceil(($limitDay + $startDay) / 7); //因為開學第一周可能不是整周,所以補上失去的天數

$weekNumber就是你要的了

感謝大家的貢獻. 我覺得可以從下面的表格作出分析(#注):

年份

(春)上課日期

(春)教學周數

暑假開始

(秋)上課日期

(秋)教學周數

寒假開始

除夕:周幾

2010

3/1

21

7/25

8/30

20

1/15

2/2:3

2011

2/21

18

6/25

8/29

20

1/15

1/22:7

2012

2/13

18

6/17

9/3

21

1/26

2/9:6

2013

2/25

18

6/29

9/2

20

1/18

1/30:4

2014

2/17

18

6/21

9/1

22

1/31

2/18:3

2015

3/2

18

7/4

8/31

21

1/23

2/8:1

2016

2/22

18

6/25

8/29

通過分析發現, 也許我們可以先分析什么時候過年, 然后暑假由過年前后各兩周決定, 這里還需要些細化, 例如還和過年是星期幾有關.

秋季開學由離9/1號最近的周一決定?

春季由開學日期(由過年決定)?

(#注: 統計結果可能不是非常正確, 大家可以復查.)

這東西還需要用算法做,或者算法能做出來么?直接把校歷的時間錄到數據庫里就完了么

校歷出一次管一年,也就是說1年錄一次就可以,說白了,根本就沒有規律,這個是教務處說了算的

真以為全國高校都9月1號開學 過年都讓過元宵節啊 我在某985高校從來就沒有在家過完元宵過

相關標簽:php

本文原創發布php中文網,轉載請注明出處,感謝您的尊重!

總結

以上是生活随笔為你收集整理的怎么计算开学第几周php,如何计算开学第几周, 要求每年通用的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。