计算一个月中每个工作日的数量


Calculate number of each weekday in the month

我在一个农场当送货员,有一种笔记本电脑(而不是笔记本电脑),里面记录了我给某人喝了多少升牛奶,什么时候喝,他们在月底要付多少钱,我想做一些应用程序来跟踪所有事情,然后把笔记本扔掉。我使用HTML、PHP和MySQL来实现这一点,这就是我目前所拥有的:

This is the form:
 <html>
<body>
<form action="insert.php" method="post">
<table border="0"><tr>
<td>Name: </td><td><input type="text" name="name"></td>
</tr><tr>
<td>Multiplier:</td><td><input type="text" name="multiplier"/></td></tr><tr>
<td>Sunday</td><td><input type="checkbox" name="values[]" value="1" /></td></tr><tr>
<td>Monday</td><td><input type="checkbox" name="values[]" value="2" /> </td></tr><tr>
<td>Tuesday</td><td><input type="checkbox" name="values[]" value="3" /></td></tr><tr>
<td>Wednesday</td><td><input type="checkbox" name="values[]" value="4" /></td></tr><tr>
<td>Thursday</td><td><input type="checkbox" name="values[]" value="5" /></td></tr><tr>
<td>Friday</td><td><input type="checkbox" name="values[]" value="6" /></td></tr><tr>
<td>Saturday</td><td><input type="checkbox" name="values[]" value="7" /></td></tr><br>
<td><input type="submit" value="Add"></td></tr>
</form>
</body>
</html>

*乘数是我每次给那个人多少升(通常每次的量都是一样的)。

在这个PHP脚本的帮助下,我正在使用这个来向数据库添加新人:

<?php
$con=mysqli_connect("","root","","Lapte");
//Check if connected
if(mysqli_connect_errno()){
    echo "Failed to connect to database: ".mysqli_connect_errno();
}
$name=$_POST['name'];
$days=sizeof($_POST['values']);
$multiplier=$_POST['multiplier'];
$days=$days*$multiplier;
$totalPerWeek=$days*2.5;

$sql="INSERT INTO deliveries (Name, Times/Week, Pay)
VALUES
('$name','$days','$totalPerWeek')";
if(!mysqli_query($con,$sql)){
    die('Error: '.mysqli_error($con));
}
    echo "$name added to database.";
mysqli_close($con);
?>

我正在使用EasyHP作为本地服务器,并且已经创建了我的数据库。

现在我的困境是:例如,如果我必须在周日和周四给X先生送牛奶,而这个月有5个周四,只有4个周日,我就不能把我每周得到的结果乘以4。我该如何处理这个问题?

使用下面的函数提供月份和年份,每个工作日的数组将返回一个表示当月金额的值。

        <?php
            function calculateDays($month, $year) {
                //how many days in given month
                $TotalDays = cal_days_in_month(CAL_GREGORIAN, $month, $year);
                $DayCount = array();
                for ($i = 1; $i <= $TotalDays; $i++) {
                    //for each day (1st to 30th/31st) get the weekday
                $DayOfWeek = date('l', mktime(0, 0, 0, $month, $i, $year));
                //add 1 to the counter
                $DayCount[$DayOfWeek]++;
                }
                return $DayCount;
            }
    ?>

或者,使用以下函数提供日期、月份和年份,它将返回给定日期在该月出现的次数的数值。

      <?php
        function countDayinMonth($day, $month, $year) {
            //how many days in given month
            $TotalDays = cal_days_in_month(CAL_GREGORIAN, $month, $year);
            $Count = 1;
            for ($i = 1; $i <= $TotalDays; $i++) {
            if ($day == date('l', mktime(0, 0, 0, $month, $i, $year)))
            //add 1 to the counter
            $Count++;
            }
            return $Count;
        }
?>

更新:以下函数只返回当前日期/月份/年份的数值。

因此,今天是8月1日星期四,将返回5

        function countDayinMonth() {
        $day = date('l');
        $month = date('n');
        $year = date('Y');
        //how many days in given month
        $TotalDays = cal_days_in_month(CAL_GREGORIAN, $month, $year);
        $Count = 0;
        for ($i = 1; $i <= $TotalDays; $i++) {
        if ($day == date('l', mktime(0, 0, 0, $month, $i, $year)))
        //add 1 to the counter
        $Count++;
        }
        return $Count;
    }
    echo countDayinMonth();