根据年月创建日期对象 $d = new DateTime('2022-10') 获取日期对象月份的天数 $d->format('t') 获取日期对象 1日是星期几 $d->format('N') (1-星期一、...、7-星期日) 编程要求 函数名称:calendar 两个参数:year及month 返回多行字符串示例: 注意行号不属于字符串的内容。 2022 年 10 月 一 二 三 四 五 六 日 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
时间: 2023-12-27 15:05:06 浏览: 71
以下是 PHP 代码实现:
```php
function calendar($year, $month) {
$date = new DateTime("$year-$month");
$days_in_month = $date->format('t');
$first_day_of_month = $date->format('N');
$output = "$year 年 $month 月\n一 二 三 四 五 六 日\n";
// 在 1 日前面添加对应数量的空格
for ($i = 1; $i < $first_day_of_month; $i++) {
$output .= " ";
}
// 循环输出日期
for ($i = 1; $i <= $days_in_month; $i++) {
$output .= sprintf("%2d ", $i);
if (($i + $first_day_of_month - 1) % 7 == 0) {
$output .= "\n";
}
}
// 如果最后一行没有满 7 个格子,补足空格
if (($days_in_month + $first_day_of_month - 1) % 7 != 0) {
$remaining_spaces = 7 - (($days_in_month + $first_day_of_month - 1) % 7);
for ($i = 0; $i < $remaining_spaces; $i++) {
$output .= " ";
}
}
return $output;
}
echo calendar(2022, 10);
```
输出结果:
```
2022 年 10 月
一 二 三 四 五 六 日
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31
```
阅读全文