对码当歌,猿生几何?

java 日期获取,每月一号,每周一

java 日期获取,每月一号,每周一 

  1. package info.lumanman.h5.util;

  2.  

  3. import java.text.SimpleDateFormat;

  4. import java.util.Calendar;

  5.  

  6. public class DateUtil {

  7.  

  8.     public static void main(String[] args) {

  9.         SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");

  10.         //addDay(sdf,10);

  11.         //getWeekDay(sdf);

  12.         getMonth(sdf);

  13.         

  14.     }

  15.     /**

  16.      * 增加天数

  17.      * @param sdf

  18.      */

  19.     public static void addDay(SimpleDateFormat sdf,int days){

  20.         

  21.         //获取Calendar实例,java封装的表现,private类Calendar的构造函数,通过静态方法创建对象

  22.         Calendar calendar=Calendar.getInstance();

  23.         //获取当前时间并格式化

  24.         System.out.println("当前时间: "+sdf.format(calendar.getTime()));

  25.         

  26.         //给当前时间加上天数days并输出,这里的第一个参数用以下三个都可以

  27.         Calendar calendar1=Calendar.getInstance();

  28.         calendar1.add(Calendar.DAY_OF_YEAR, days);

  29.         System.out.println("加了"+days+"天之后的时间: "+sdf.format(calendar1.getTime()));

  30.         

  31.         Calendar calendar2=Calendar.getInstance();

  32.         calendar2.add(Calendar.DAY_OF_MONTH, days);

  33.         System.out.println("加了"+days+"之后的时间: "+sdf.format(calendar2.getTime()));

  34.         

  35.         Calendar calendar3=Calendar.getInstance();

  36.         calendar3.add(Calendar.DAY_OF_WEEK, days);

  37.         System.out.println("加了"+days+"之后的时间: "+sdf.format(calendar3.getTime()));

  38.     }

  39.     /**

  40.      * 获取当前星期、前一星期、后一星期的第一天和最后一天

  41.      * @param sdf

  42.      */

  43.     public static void getWeekDay(SimpleDateFormat sdf){

  44.         //获取Calendar实例,java封装的表现,private类Calendar的构造函数,通过静态方法创建对象

  45.         Calendar calendar=Calendar.getInstance();

  46.         //获取当前时间并格式化

  47.         System.out.println("当前时间: "+sdf.format(calendar.getTime()));

  48.         

  49.         //本周一

  50.         Calendar calendar1=Calendar.getInstance();

  51.         calendar1.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);

  52.         System.out.println("本周一: "+sdf.format(calendar1.getTime()));

  53.         //本周日

  54.         Calendar calendar2=Calendar.getInstance();

  55.         //外国的星期天和我们的不在一周(外国是星期天到星期六为一个星期)

  56.         calendar2.add(Calendar.DAY_OF_WEEK, 7);

  57.         calendar2.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY);

  58.         System.out.println("本周日: "+sdf.format(calendar2.getTime()));

  59.         

  60.         //下周一

  61.         Calendar calendar3=Calendar.getInstance();

  62.         calendar3.add(Calendar.DAY_OF_MONTH, 7);

  63.         calendar3.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);

  64.         System.out.println("下周一: "+sdf.format(calendar3.getTime()));

  65.         //下周日

  66.         Calendar calendar4=Calendar.getInstance();

  67.         calendar4.add(Calendar.DAY_OF_MONTH, 14);

  68.         calendar4.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY);

  69.         System.out.println("下周日: "+sdf.format(calendar4.getTime()));

  70.         

  71.         //上周一

  72.         Calendar calendar5=Calendar.getInstance();

  73.         calendar5.add(Calendar.DAY_OF_YEAR, -7);

  74.         calendar5.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);

  75.         System.out.println("上周一: "+sdf.format(calendar5.getTime()));

  76.         //上周日

  77.         Calendar calendar6=Calendar.getInstance();

  78.         calendar6.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY);

  79.         System.out.println("上周日: "+sdf.format(calendar6.getTime()));

  80.     }

  81.     /**

  82.      * 获取当前月、前一月、后一月的第一天和最后一天

  83.      * @param sdf

  84.      */

  85.     public static void getMonth(SimpleDateFormat sdf){

  86.         //定义当前月的总天数,比如30,31,28,29

  87.         int maxCurrentMonthDay=0;

  88.         Calendar calendar=Calendar.getInstance();

  89.         System.out.println("当前时间: "+sdf.format(calendar.getTime()));

  90.         

  91.         //当月一号

  92.         Calendar calendar1=Calendar.getInstance();

  93.         calendar1.set(Calendar.DAY_OF_MONTH, 1);

  94.         System.out.println("本月第一天: "+sdf.format(calendar1.getTime()));

  95.         //当月最后一天

  96.         Calendar calendar2=Calendar.getInstance();

  97.         maxCurrentMonthDay=calendar2.getActualMaximum(Calendar.DAY_OF_MONTH);

  98.         calendar2.set(Calendar.DAY_OF_MONTH, maxCurrentMonthDay);

  99.         System.out.println("本月最后一天: "+sdf.format(calendar2.getTime()));

  100.         

  101.         //下个月一号

  102.         Calendar calendar3=Calendar.getInstance();

  103.         maxCurrentMonthDay=calendar3.getActualMaximum(Calendar.DAY_OF_MONTH);

  104.         calendar3.add(Calendar.DAY_OF_MONTH, maxCurrentMonthDay);

  105.         calendar3.set(Calendar.DAY_OF_MONTH, 1);

  106.         System.out.println("下月第一天: "+sdf.format(calendar3.getTime()));

  107.         //下个月最后一天

  108.         Calendar calendar4=Calendar.getInstance();

  109.         maxCurrentMonthDay=calendar4.getActualMaximum(Calendar.DAY_OF_MONTH);

  110.         calendar4.add(Calendar.DAY_OF_MONTH, maxCurrentMonthDay);

  111.         //第一个maxCurrentMonthDay获取的是当月的天数,第二个maxCurrentMonthDay获取的是下个月的天数

  112.         maxCurrentMonthDay=calendar4.getActualMaximum(Calendar.DAY_OF_MONTH);

  113.         calendar4.set(Calendar.DAY_OF_MONTH, maxCurrentMonthDay);

  114.         System.out.println("下月第一天: "+sdf.format(calendar4.getTime()));

  115.         

  116.         //上个月一号

  117.         Calendar calendar5=Calendar.getInstance();

  118.         maxCurrentMonthDay=calendar5.getActualMaximum(Calendar.DAY_OF_MONTH);

  119.         calendar5.add(Calendar.DAY_OF_MONTH, -maxCurrentMonthDay);

  120.         calendar5.set(Calendar.DAY_OF_MONTH, 1);

  121.         System.out.println("上月第一天: "+sdf.format(calendar5.getTime()));

  122.         //上个月最后一天

  123.         Calendar calendar6=Calendar.getInstance();

  124.         maxCurrentMonthDay=calendar6.getActualMaximum(Calendar.DAY_OF_MONTH);

  125.         calendar6.add(Calendar.DAY_OF_MONTH, -maxCurrentMonthDay);

  126.         //第一个maxCurrentMonthDay获取的是当月的天数,第二个maxCurrentMonthDay获取的是上个月的天数

  127.         maxCurrentMonthDay=calendar6.getActualMaximum(Calendar.DAY_OF_MONTH);

  128.         calendar6.set(Calendar.DAY_OF_MONTH, maxCurrentMonthDay);

  129.         System.out.println("上月第一天: "+sdf.format(calendar6.getTime()));

  130.         

  131.     }

  132.  }