zoukankan      html  css  js  c++  java
  • 获取当前时间的天、周、月、季度、半年度、年度开始和结束时间

    1. package com.dada.test;  
    2.   
    3. import java.text.SimpleDateFormat;  
    4. import java.util.Calendar;  
    5. import java.util.Date;  
    6.   
    7. public class TestDate {  
    8.     public static void main(String[] args) {  
    9.         System.out.println("当前小时开始:"+getCurrentHourStartTime().toString());  
    10.         System.out.println("当前小时结束:"+getCurrentHourEndTime().toString());  
    11.         System.out.println("当前天开始:"+getCurrentDayStartTime().toString());  
    12.         System.out.println("当前天时结束:"+getCurrentDayEndTime().toString());  
    13.         System.out.println("当前周开始:"+getCurrentWeekDayStartTime().toString());  
    14.         System.out.println("当前周结束:"+getCurrentWeekDayEndTime().toString());  
    15.         System.out.println("当前月开始:"+getCurrentMonthStartTime().toString());  
    16.         System.out.println("当前月结束:"+getCurrentMonthEndTime().toString());  
    17.         System.out.println("当前季度开始:"+getCurrentQuarterStartTime().toString());  
    18.         System.out.println("当前季度结束:"+getCurrentQuarterEndTime().toString());  
    19.         System.out.println("当前半年/后半年开始:"+getHalfYearStartTime().toString());  
    20.         System.out.println("当前半年/后半年结束:"+getHalfYearEndTime().toString());  
    21.         System.out.println("当前年开始:"+getCurrentYearStartTime().toString());  
    22.         System.out.println("当前年结束:"+getCurrentYearEndTime().toString());  
    23.     }  
    24.   
    25.     /** 
    26.      * 获取 当前年、半年、季度、月、日、小时 开始结束时间 
    27.      */  
    28.   
    29.     private final static SimpleDateFormat shortSdf = new SimpleDateFormat("yyyy-MM-dd");  
    30.     private final static SimpleDateFormat longHourSdf = new SimpleDateFormat("yyyy-MM-dd HH");;  
    31.     private final static SimpleDateFormat longSdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");;  
    32.   
    33.   
    34.     /** 
    35.      * 获得本周的第一天,周一 
    36.      *  
    37.      * @return 
    38.      */  
    39.     public static Date getCurrentWeekDayStartTime() {  
    40.         Calendar c = Calendar.getInstance();  
    41.         try {  
    42.             int weekday = c.get(Calendar.DAY_OF_WEEK) - 2;  
    43.             c.add(Calendar.DATE, -weekday);  
    44.             c.setTime(longSdf.parse(shortSdf.format(c.getTime()) + " 00:00:00"));  
    45.         } catch (Exception e) {  
    46.             e.printStackTrace();  
    47.         }  
    48.         return c.getTime();  
    49.     }  
    50.   
    51.     /** 
    52.      * 获得本周的最后一天,周日 
    53.      *  
    54.      * @return 
    55.      */  
    56.     public static Date getCurrentWeekDayEndTime() {  
    57.         Calendar c = Calendar.getInstance();  
    58.         try {  
    59.             int weekday = c.get(Calendar.DAY_OF_WEEK);  
    60.             c.add(Calendar.DATE, 8 - weekday);  
    61.             c.setTime(longSdf.parse(shortSdf.format(c.getTime()) + " 23:59:59"));  
    62.         } catch (Exception e) {  
    63.             e.printStackTrace();  
    64.         }  
    65.         return c.getTime();  
    66.     }  
    67.   
    68.     /** 
    69.      * 获得本天的开始时间,即2012-01-01 00:00:00 
    70.      *  
    71.      * @return 
    72.      */  
    73.     public static Date getCurrentDayStartTime() {  
    74.         Date now = new Date();  
    75.         try {  
    76.             now = shortSdf.parse(shortSdf.format(now));  
    77.         } catch (Exception e) {  
    78.             e.printStackTrace();  
    79.         }  
    80.         return now;  
    81.     }  
    82.   
    83.     /** 
    84.      * 获得本天的结束时间,即2012-01-01 23:59:59 
    85.      *  
    86.      * @return 
    87.      */  
    88.     public static Date getCurrentDayEndTime() {  
    89.         Date now = new Date();  
    90.         try {  
    91.             now = longSdf.parse(shortSdf.format(now) + " 23:59:59");  
    92.         } catch (Exception e) {  
    93.             e.printStackTrace();  
    94.         }  
    95.         return now;  
    96.     }  
    97.   
    98.     /** 
    99.      * 获得本小时的开始时间,即2012-01-01 23:59:59 
    100.      *  
    101.      * @return 
    102.      */  
    103.     public static Date getCurrentHourStartTime() {  
    104.         Date now = new Date();  
    105.         try {  
    106.             now = longHourSdf.parse(longHourSdf.format(now));  
    107.         } catch (Exception e) {  
    108.             e.printStackTrace();  
    109.         }  
    110.         return now;  
    111.     }  
    112.   
    113.     /** 
    114.      * 获得本小时的结束时间,即2012-01-01 23:59:59 
    115.      *  
    116.      * @return 
    117.      */  
    118.     public static Date getCurrentHourEndTime() {  
    119.         Date now = new Date();  
    120.         try {  
    121.             now = longSdf.parse(longHourSdf.format(now) + ":59:59");  
    122.         } catch (Exception e) {  
    123.             e.printStackTrace();  
    124.         }  
    125.         return now;  
    126.     }  
    127.   
    128.     /** 
    129.      * 获得本月的开始时间,即2012-01-01 00:00:00 
    130.      *  
    131.      * @return 
    132.      */  
    133.     public static Date getCurrentMonthStartTime() {  
    134.         Calendar c = Calendar.getInstance();  
    135.         Date now = null;  
    136.         try {  
    137.             c.set(Calendar.DATE, 1);  
    138.             now = shortSdf.parse(shortSdf.format(c.getTime()));  
    139.         } catch (Exception e) {  
    140.             e.printStackTrace();  
    141.         }  
    142.         return now;  
    143.     }  
    144.   
    145.     /** 
    146.      * 当前月的结束时间,即2012-01-31 23:59:59 
    147.      *  
    148.      * @return 
    149.      */  
    150.     public static Date getCurrentMonthEndTime() {  
    151.         Calendar c = Calendar.getInstance();  
    152.         Date now = null;  
    153.         try {  
    154.             c.set(Calendar.DATE, 1);  
    155.             c.add(Calendar.MONTH, 1);  
    156.             c.add(Calendar.DATE, -1);  
    157.             now = longSdf.parse(shortSdf.format(c.getTime()) + " 23:59:59");  
    158.         } catch (Exception e) {  
    159.             e.printStackTrace();  
    160.         }  
    161.         return now;  
    162.     }  
    163.   
    164.     /** 
    165.      * 当前年的开始时间,即2012-01-01 00:00:00 
    166.      *  
    167.      * @return 
    168.      */  
    169.     public static Date getCurrentYearStartTime() {  
    170.         Calendar c = Calendar.getInstance();  
    171.         Date now = null;  
    172.         try {  
    173.             c.set(Calendar.MONTH, 0);  
    174.             c.set(Calendar.DATE, 1);  
    175.             now = shortSdf.parse(shortSdf.format(c.getTime()));  
    176.         } catch (Exception e) {  
    177.             e.printStackTrace();  
    178.         }  
    179.         return now;  
    180.     }  
    181.   
    182.     /** 
    183.      * 当前年的结束时间,即2012-12-31 23:59:59 
    184.      *  
    185.      * @return 
    186.      */  
    187.     public static Date getCurrentYearEndTime() {  
    188.         Calendar c = Calendar.getInstance();  
    189.         Date now = null;  
    190.         try {  
    191.             c.set(Calendar.MONTH, 11);  
    192.             c.set(Calendar.DATE, 31);  
    193.             now = longSdf.parse(shortSdf.format(c.getTime()) + " 23:59:59");  
    194.         } catch (Exception e) {  
    195.             e.printStackTrace();  
    196.         }  
    197.         return now;  
    198.     }  
    199.   
    200.     /** 
    201.      * 当前季度的开始时间,即2012-01-1 00:00:00 
    202.      *  
    203.      * @return 
    204.      */  
    205.     public static Date getCurrentQuarterStartTime() {  
    206.         Calendar c = Calendar.getInstance();  
    207.         int currentMonth = c.get(Calendar.MONTH) + 1;  
    208.         Date now = null;  
    209.         try {  
    210.             if (currentMonth >= 1 && currentMonth <= 3)  
    211.                 c.set(Calendar.MONTH, 0);  
    212.             else if (currentMonth >= 4 && currentMonth <= 6)  
    213.                 c.set(Calendar.MONTH, 3);  
    214.             else if (currentMonth >= 7 && currentMonth <= 9)  
    215.                 c.set(Calendar.MONTH, 4);  
    216.             else if (currentMonth >= 10 && currentMonth <= 12)  
    217.                 c.set(Calendar.MONTH, 9);  
    218.             c.set(Calendar.DATE, 1);  
    219.             now = longSdf.parse(shortSdf.format(c.getTime()) + " 00:00:00");  
    220.         } catch (Exception e) {  
    221.             e.printStackTrace();  
    222.         }  
    223.         return now;  
    224.     }  
    225.   
    226.     /** 
    227.      * 当前季度的结束时间,即2012-03-31 23:59:59 
    228.      *  
    229.      * @return 
    230.      */  
    231.     public static Date getCurrentQuarterEndTime() {  
    232.         Calendar c = Calendar.getInstance();  
    233.         int currentMonth = c.get(Calendar.MONTH) + 1;  
    234.         Date now = null;  
    235.         try {  
    236.             if (currentMonth >= 1 && currentMonth <= 3) {  
    237.                 c.set(Calendar.MONTH, 2);  
    238.                 c.set(Calendar.DATE, 31);  
    239.             } else if (currentMonth >= 4 && currentMonth <= 6) {  
    240.                 c.set(Calendar.MONTH, 5);  
    241.                 c.set(Calendar.DATE, 30);  
    242.             } else if (currentMonth >= 7 && currentMonth <= 9) {  
    243.                 c.set(Calendar.MONTH, 8);  
    244.                 c.set(Calendar.DATE, 30);  
    245.             } else if (currentMonth >= 10 && currentMonth <= 12) {  
    246.                 c.set(Calendar.MONTH, 11);  
    247.                 c.set(Calendar.DATE, 31);  
    248.             }  
    249.             now = longSdf.parse(shortSdf.format(c.getTime()) + " 23:59:59");  
    250.         } catch (Exception e) {  
    251.             e.printStackTrace();  
    252.         }  
    253.         return now;  
    254.     }  
    255.   
    256.     /** 
    257.      * 获取前/后半年的开始时间 
    258.      *  
    259.      * @return 
    260.      */  
    261.     public static Date getHalfYearStartTime() {  
    262.         Calendar c = Calendar.getInstance();  
    263.         int currentMonth = c.get(Calendar.MONTH) + 1;  
    264.         Date now = null;  
    265.         try {  
    266.             if (currentMonth >= 1 && currentMonth <= 6) {  
    267.                 c.set(Calendar.MONTH, 0);  
    268.             } else if (currentMonth >= 7 && currentMonth <= 12) {  
    269.                 c.set(Calendar.MONTH, 6);  
    270.             }  
    271.             c.set(Calendar.DATE, 1);  
    272.             now = longSdf.parse(shortSdf.format(c.getTime()) + " 00:00:00");  
    273.         } catch (Exception e) {  
    274.             e.printStackTrace();  
    275.         }  
    276.         return now;  
    277.   
    278.     }  
    279.   
    280.     /** 
    281.      * 获取前/后半年的结束时间 
    282.      *  
    283.      * @return 
    284.      */  
    285.     public static Date getHalfYearEndTime() {  
    286.         Calendar c = Calendar.getInstance();  
    287.         int currentMonth = c.get(Calendar.MONTH) + 1;  
    288.         Date now = null;  
    289.         try {  
    290.             if (currentMonth >= 1 && currentMonth <= 6) {  
    291.                 c.set(Calendar.MONTH, 5);  
    292.                 c.set(Calendar.DATE, 30);  
    293.             } else if (currentMonth >= 7 && currentMonth <= 12) {  
    294.                 c.set(Calendar.MONTH, 11);  
    295.                 c.set(Calendar.DATE, 31);  
    296.             }  
    297.             now = longSdf.parse(shortSdf.format(c.getTime()) + " 23:59:59");  
    298.         } catch (Exception e) {  
    299.             e.printStackTrace();  
    300.         }  
    301.         return now;  
    302.     }  
    303.   
    304. }  
  • 相关阅读:
    360给腾讯造的盗梦空间
    C 语言 运算符优先级
    CorelDraw, Adobe Illustrator 转换到 Photoshop 形状路径
    用户体验经典解释
    禁用Windows XP的自动播放功能
    ObjectiveC ARC下的内存管理(一)
    ARC下的内存管理(二)对象及成员的引用关系
    天天撞墙
    PS: 操作不实时显示的解决办法
    摩托罗拉 Milestone新手刷机教程
  • 原文地址:https://www.cnblogs.com/telwanggs/p/4533252.html
Copyright © 2011-2022 走看看