GVKun编程网logo

PHP计算一年多少个星期和每周的开始和结束日期(php计算一年多少个星期和每周的开始和结束日期)

15

在这里,我们将给大家分享关于PHP计算一年多少个星期和每周的开始和结束日期的知识,让您更了解php计算一年多少个星期和每周的开始和结束日期的本质,同时也会涉及到如何更有效地HP实现计算一年多少个星期,

在这里,我们将给大家分享关于PHP计算一年多少个星期和每周的开始和结束日期的知识,让您更了解php计算一年多少个星期和每周的开始和结束日期的本质,同时也会涉及到如何更有效地HP实现计算一年多少个星期,返回一个星期的开始时间和结束时间(可选返回时间戳或日期)、java 使用Calendar类计算每月有多少自然周,并输出每周的开始和结束日期、java-获取给定月份的每周的开始日期和结束日期、php – Carbon:了解一年中一年中的一周的开始和结束日期的内容。

本文目录一览:

PHP计算一年多少个星期和每周的开始和结束日期(php计算一年多少个星期和每周的开始和结束日期)

PHP计算一年多少个星期和每周的开始和结束日期(php计算一年多少个星期和每周的开始和结束日期)

  <?php 

    function weeks_per_year($year) {

        $start strtotime("{$year}-1-1 0:00:00");

        $end strtotime("{$year}-12-31 24:00:00");

        $days = ($end-$start)/60/60/24;

        $w_start date(''w''$start);

        if($w_start == 0) $w_start = 7;

        $weeks ceil(($w_start - 1 + $days) / 7.0);

        return $weeks;

    }

 

    function week_start_end($year) {

        $start strtotime("{$year}-1-1 0:00:00");

        $end strtotime("{$year}-12-31 24:00:00");

        $w_start date(''w''$start);

        if($w_start == 0) $w_start = 7;

        $curr $start;

        $curr += (7-$w_start)*24*60*60;

        $weeks array();

        while($curr <= $end) {

            $week array();

            $curr += 1*24*60*60;

            //week start

            $week[''start''] = date(''n-j''$curr);

            $curr += 6*24*60*60;

            //week end

            $week[''end''] = date(''n-j''$curr);

            $weeks[] = $week;

        }

        return $weeks;

    }

 

    echo weeks_per_year(2012);

    $weeks = week_start_end(2015);

    var_dump($weeks);

 

 ?>

HP实现计算一年多少个星期,返回一个星期的开始时间和结束时间(可选返回时间戳或日期)

HP实现计算一年多少个星期,返回一个星期的开始时间和结束时间(可选返回时间戳或日期)

  1. function getWeekStartAndEnd ($year,$week=1) {
  2. header("Content-type:text/html;charset=utf-8");
  3. date_default_timezone_set("Asia/Shanghai");
  4. $year = (int)$year;
  5. $week = (int)$week;
  6. //按给定的年份计算本年周总数
  7. $date = new DateTime;
  8. $date->setISODate($year, 53);
  9. $weeks = max($date->format("W"),52);
  10. //如果给定的周数大于周总数或小于等于0
  11. if($week>$weeks || $week return false;
  12. }
  13. //如果周数小于10
  14. if($week $week = ''0''.$week;
  15. }
  16. //当周起止时间戳
  17. $timestamp[''start''] = strtotime($year.''W''.$week);
  18. $timestamp[''end''] = strtotime(''+1 week -1 day'',$timestamp[''start'']);
  19. //当周起止日期
  20. $timeymd[''start''] = date("Y-m-d",$timestamp[''start'']);
  21. $timeymd[''end''] = date("Y-m-d",$timestamp[''end'']);
  22. //返回起始时间戳
  23. return $timestamp;
  24. //返回日期形式
  25. //return $timeymd;
  26. }
复制代码

可选, 一个星期, 多少个


java 使用Calendar类计算每月有多少自然周,并输出每周的开始和结束日期

java 使用Calendar类计算每月有多少自然周,并输出每周的开始和结束日期

思路:首先是获取该月的实际天数,然后从1号遍历直至该月最后一天,利用Calendar类找出该日是一周中的第几天,

(1)若该日是周日,则视为一周结束,并用该日期减去6找到该周的开始日期,若相减结果小于等于1,则说明该周起始日期应该是本月1号。

(1)若该日不是周日,且是该月最后一天,则应该在上面计算的基础上再加一周,视月末为该周的结束日,该周起始日期应为改日期减去改日

在一周中的位置加2,例如:2013-09-30号是周一,则视为9月份中的第六周,开始日期是30-2+2

提示:Calendar 类中视周日为一周的开始,值是1

示例代码:

public static void printfWeeks(String date) throws Exception {
        // String date = "2013-09";
        DateFormat dateFormat = new SimpleDateFormat("yyyy-MM");
        Date date1 = dateFormat.parse(date);
        Calendar calendar = new GregorianCalendar();
        calendar.setTime(date1);
        int days = calendar.getActualMaximum(Calendar.DAY_OF_MONTH);
        System.out.println("days:" + days);
        int count = 0;
        for (int i = 1; i <= days; i++) {
            DateFormat dateFormat1 = new SimpleDateFormat("yyyy-MM-dd");
            Date date2 = dateFormat1.parse(date + "-" + i);
            calendar.clear();
            calendar.setTime(date2);
            int k = new Integer(calendar.get(Calendar.DAY_OF_WEEK));
            if (k == 1) {// 若当天是周日
                count++;
                System.out.println("-----------------------------------");
                System.out.println("第" + count + "周");
                if (i - 6 <= 1) {
                    System.out.println("本周开始日期:" + date + "-" + 1);
                } else {
                    System.out.println("本周开始日期:" + date + "-" + (i - 6));
                }
                System.out.println("本周结束日期:" + date + "-" + i);
                System.out.println("-----------------------------------");
            }
            if (k != 1 && i == days) {// 若是本月最好一天,且不是周日
                count++;
                System.out.println("-----------------------------------");
                System.out.println("第" + count + "周");
                System.out.println("本周开始日期:" + date + "-" + (i - k + 2));
                System.out.println("本周结束日期:" + date + "-" + i);
                System.out.println("-----------------------------------");
            }
        }
    }

测试代码:

public static void main(String[] args) throws Exception {
        String s = "2013-";
        for (int i = 1; i <= 12; i++) {
            System.out.println("");
            System.out.println("月份:" + i);
            printfWeeks(s + i);
            System.out.println("
");

        }
//        printfWeeks(s + 2);
    }

java-获取给定月份的每周的开始日期和结束日期

java-获取给定月份的每周的开始日期和结束日期

以下是我用来计算给定月份的星期开始日期和结束日期的代码。假设周开始日期为MONDAY,周结束日期为SUNDAY。例如,2013年1月将有5个星期。如果月份从星期日开始-
忽略该天

2013年1月第一周-2012年12月31日至2013年1月6日第二周-2013年1月7日至2013年1月13日第三周-2013年1月14日至2013年1月20日第四周-21日-2013至2013年1月27日第五周-2013年1月28日至2013年2月3日

public static void main(String[] args) {    List<List<String>> weekdates = getNumberOfWeeks(2013, Calendar.JULY);    for(List<String> weekDatesLoop:weekdates){        System.out.println("Start day: "+weekDatesLoop.get(0).toString());        System.out.println("End day: "+weekDatesLoop.get(1).toString());    }  }public static List<List<String>> getNumberOfWeeks(int year, int month) {        System.out.println("Month Id: "+month);        month = month-1;        System.out.println("Month Id: " + month);        SimpleDateFormat format = new SimpleDateFormat("yyyyMMdd");        List<List<String>> weekdates = new ArrayList<List<String>>();        List<String> dates = new ArrayList<String>();        Calendar c = Calendar.getInstance();        c.set(Calendar.YEAR, year);        c.set(Calendar.MONTH, month);        c.set(Calendar.DAY_OF_MONTH, 1);        dates.add(format.format(c.getTime()));        //int numOfWeeksInMonth = 1;        while (c.get(Calendar.MONTH) == month) {          //System.out.println(c.get(Calendar.DAY_OF_WEEK) );          if (c.get(Calendar.DAY_OF_WEEK) == Calendar.SUNDAY) {            dates.add(format.format(c.getTime()));            weekdates.add(dates);          }          else if (c.get(Calendar.DAY_OF_WEEK) == Calendar.MONDAY) {            dates = new ArrayList<String>();            dates.add(format.format(c.getTime()));            //numOfWeeksInMonth++;          }          c.add(Calendar.DAY_OF_MONTH, 1);        }        if(dates.size() < 2){          c.add(Calendar.DAY_OF_MONTH, -1);          dates.add(format.format(c.getTime()));          weekdates.add(dates);        }        System.out.println(weekdates);        return weekdates;      }

我仍在努力。谁能帮我解决这个问题?

答案1

小编典典

我得到以下代码的答案

List<List<String>> getNumberOfWeeks(int year, int month) {        SimpleDateFormat format = new SimpleDateFormat("dd-MM-yyyy");        List<List<String>> weekdates = new ArrayList<List<String>>();        List<String> dates;        Calendar c = Calendar.getInstance();        c.set(Calendar.YEAR, year);        c.set(Calendar.MONTH, month);        c.set(Calendar.DAY_OF_MONTH, 1);        while (c.get(Calendar.MONTH) == month) {                dates = new ArrayList<String>();              while (c.get(Calendar.DAY_OF_WEEK) != Calendar.MONDAY) {                c.add(Calendar.DAY_OF_MONTH, -1);              }              dates.add(format.format(c.getTime()));              c.add(Calendar.DAY_OF_MONTH, 6);              dates.add(format.format(c.getTime()));              weekdates.add(dates);              c.add(Calendar.DAY_OF_MONTH, 1);        }        System.out.println(weekdates);        return weekdates;      }

php – Carbon:了解一年中一年中的一周的开始和结束日期

php – Carbon:了解一年中一年中的一周的开始和结束日期

Carbon提供函数weekOfYear以将一年中的星期作为整数.但是,我需要反过来根据一年中的一年获得日期.

Carbon::Now()->weekOfYear(); // todays week of the year

例如.

>年份:2016年
>一年中的一周:42

因此,我需要这周的开始和结束日期.但是我在Carbon文档中找不到合适的函数

解决方法

Carbon是PHP的DateTime的包装器,所以你可以使用 setISODate:

$date = Carbon::Now(); // or $date = new Carbon();
$date->setISODate(2016,42); // 2016-10-17 23:59:59.000000
echo $date->startOfWeek(); // 2016-10-17 00:00:00.000000
echo $date->endOfWeek(); // 2016-10-23 23:59:59.000000

关于PHP计算一年多少个星期和每周的开始和结束日期php计算一年多少个星期和每周的开始和结束日期的问题就给大家分享到这里,感谢你花时间阅读本站内容,更多关于HP实现计算一年多少个星期,返回一个星期的开始时间和结束时间(可选返回时间戳或日期)、java 使用Calendar类计算每月有多少自然周,并输出每周的开始和结束日期、java-获取给定月份的每周的开始日期和结束日期、php – Carbon:了解一年中一年中的一周的开始和结束日期等相关知识的信息别忘了在本站进行查找喔。

本文标签: