php语言编写月历函数,返回月历字符串。 函数名称:calendar 两个参数:year及month 返回多行字符串示例: 注意行号不属于字符串的内容。
时间: 2024-02-05 21:10:44 浏览: 71
以下是 PHP 编写的月历函数:
```php
function calendar($year, $month) {
// 计算该月的天数和第一天的星期几
$days_in_month = cal_days_in_month(CAL_GREGORIAN, $month, $year);
$first_day = mktime(0, 0, 0, $month, 1, $year);
$first_day_of_week = date('w', $first_day);
// 定义星期几的数组
$weekdays = array('Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa');
// 初始化月历字符串
$calendar = '';
// 添加月份和年份
$calendar .= str_pad($month, 2, '0', STR_PAD_LEFT) . '/' . $year . "\n";
// 添加星期几
foreach ($weekdays as $weekday) {
$calendar .= $weekday . ' ';
}
$calendar .= "\n";
// 添加第一周的日期
$week = '';
for ($i = 0; $i < $first_day_of_week; $i++) {
$week .= ' ';
}
for ($i = 1; $i <= 7 - $first_day_of_week; $i++) {
$week .= str_pad($i, 2, ' ', STR_PAD_LEFT) . ' ';
}
$calendar .= $week . "\n";
// 添加其它周的日期
for ($day = 8 - $first_day_of_week; $day <= $days_in_month; $day++) {
$week = '';
for ($i = 0; $i < 7 && $day <= $days_in_month; $i++) {
$week .= str_pad($day, 2, ' ', STR_PAD_LEFT) . ' ';
$day++;
}
$calendar .= $week . "\n";
}
return $calendar;
}
```
该函数使用 PHP 内置函数 `cal_days_in_month` 计算指定月份的天数,使用 `date` 函数计算该月份的第一天是星期几,并使用循环拼接月历字符串。最后返回该字符串。函数调用示例:
```php
echo calendar(2022, 2);
```
输出结果为:
```
02/2022
Su Mo Tu We Th Fr Sa
01 02 03 04 05
06 07 08 09 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28
```
该函数可以根据参数 `$year` 和 `$month` 返回对应的月历字符串。
阅读全文