ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

getDaysByMonth获取当前月自然天数

2020-12-04 14:01:52  阅读:184  来源: 互联网

标签:12 java 天数 getDaysByMonth 获取 2021 date import Calendar


代码:

package jc_wis;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.List;

/**
 * 测试类
 * @author wang-xiaoming
 *
 */
public class TestDate {
    public static void main(String[] args) {
        System.out.println("2020-12 : " + getDaysByMonth("2020-12"));
        System.out.println("2021-01 : " + getDaysByMonth("2021-01"));
        System.out.println("2021-02 : " + getDaysByMonth("2021-02"));
    }
    
    public static final String FORMAT_SHORTER = "yyyy-MM";
    
    /**
     * 日期格式化   
     * @param date
     * @param pattern
     * @return
     */
    public static Date parse(String date, String pattern) {        
        SimpleDateFormat sdf = new SimpleDateFormat(pattern);        
            try {            
                return sdf.parse(date);        
            } catch (ParseException e) {           
                e.printStackTrace();            
                return null;        
            }    
        }
    
    /**
     * 返回指定某一年某一月的所有日期号
     * @param date
     * @return
     */
    public static List<Integer> getDaysByMonth(String date){
        Calendar c = Calendar.getInstance();     
        c.setTime(parse(date, FORMAT_SHORTER));      
        int year = c.get(Calendar.YEAR); 
        int month = c.get(Calendar.MONTH);
        List<Integer> list = null;
        if(month >= 0 && month <= 11){
            list = new ArrayList<>(31);
            c = Calendar.getInstance();
            c.set(year, month, 1);
            int lastDay = c.getActualMaximum(Calendar.DAY_OF_MONTH);
            for (int i = 0; i <= lastDay; i++) {
                list.add(i);
            }
        }
        return list;
    }
    
}

结果:

2020-12 : [0, 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]
2021-01 : [0, 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]
2021-02 : [0, 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]

 

标签:12,java,天数,getDaysByMonth,获取,2021,date,import,Calendar
来源: https://www.cnblogs.com/huakaiyoushi/p/14085445.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有