java 获取本周,本月,本年 的第一天和最后一天

本文演示了如何使用Java的Calendar和SimpleDateFormat类来获取和格式化日期和时间,包括本周的周一、周日、本月的第一天和最后一天、本年的第一天和最后一天。
package z_test;

import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class Hello {

    /**
     * @param args
     */
    public static void main(String[] args) {
        //格式化字符串
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
        Calendar c = Calendar.getInstance();
        
        c.set(Calendar.DAY_OF_WEEK, 2);                //本周的第一天,写1获取到的是周日,2获取到的是周一
        System.out.println("本周的周一:" + sdf.format(c.getTime()));
        
        c = Calendar.getInstance();
        c.set(Calendar.DAY_OF_WEEK, 7);                //程序里一周的最后一天是周六,不符合中国人习惯,所以+1
        c.add(c.DATE, 1);
        System.out.println("本周的周日:" + sdf.format(c.getTime()));
         
 
        c = Calendar.getInstance();
        c.set(Calendar.DAY_OF_MONTH, 1);            //获取本月第一天
        System.out.println("本月的第一天:" + sdf.format(c.getTime()));
         
        c = Calendar.getInstance();
        c.add(Calendar.MONTH, 1);                    //获取本月最后一天
        c.set(Calendar.DAY_OF_MONTH, 1);
        c.add(Calendar.DAY_OF_MONTH, -1);
        System.out.println("本月的最后一天:" + sdf.format(c.getTime()));
 
        c = Calendar.getInstance();
        c.set(Calendar.DAY_OF_YEAR, 1);                //获取本年第一天
        System.out.println("本年的第一天:" + sdf.format(c.getTime()));
         
        c = Calendar.getInstance();
        c.set(Calendar.DAY_OF_YEAR, 1);                //获取本年最后一天
        c.set(Calendar.YEAR, 1);
        c.add(Calendar.DAY_OF_YEAR, -1);
        System.out.println("本年的最后一天:" + sdf.format(c.getTime()));
    }
}

 

转载于:https://www.cnblogs.com/weiyx/p/4335052.html

<think> 我们正在回答用户关于用PHP获取本年第一天最后一天的问题 注意:用户要求参考站内引用,但当前上下文没有提供相关引用,因此我们忽略引用要求。 根据用户需求,我们需要提供PHP代码来获取本年第一天最后一天本年第一天就是1月1日,最后一天是12月31日。我们可以使用PHP的日期函数来实现。 步骤如下: 1. 获取当前年份。 2. 构建第一天的日期字符串,格式为“Y-01-01”。 3. 构建最后一天的日期字符串,格式为“Y-12-31”。 但是,有时我们可能需要得到的是时间戳或者DateTime对象,因此我们可以提供多种方式。 另外,我们可以考虑使用DateTime对象来操作,这样更灵活。 方法一:使用date函数strtotime函数 方法二:使用DateTime对象 我们将分别展示这两种方法。 </think> ### PHP获取本年第一天最后一天的方法 在PHP中获取本年第一天最后一天有以下三种常用方法,均使用内置日期函数实现: #### 方法1:使用 `date()` `strtotime()` 函数 ```php $firstDay = date('Y-01-01'); // 本年第一天(YYYY-01-01格式) $lastDay = date('Y-12-31'); // 本年最后一天(YYYY-12-31格式) ``` #### 方法2:动态计算(考虑闰年) ```php $year = date('Y'); $firstDay = "{$year}-01-01"; $lastDay = "{$year}-12-31"; // 验证最后一天是否合法(自动处理闰年2月) $lastDay = date('Y-m-t', strtotime($lastDay)); ``` #### 方法3:使用 DateTime 对象(面向对象风格) ```php $firstDay = (new DateTime('first day of January'))->format('Y-m-d'); $lastDay = (new DateTime('last day of December'))->format('Y-m-d'); ``` ### 注意事项 1. 所有方法返回的都是字符串格式 `YYYY-MM-DD` 2. 方法3使用PHP 5.3+的DateTime语法,更推荐在新项目中使用 3. 示例输出(假设当前年份2023): ```php echo "第一天: {$firstDay}, 最后一天: {$lastDay}"; // 输出:第一天: 2023-01-01, 最后一天: 2023-12-31 ``` 日期时间处理是Web开发中的基础操作,PHP提供了灵活的日期函数支持各种场景需求[^1]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值