Java小Case之日期

根据当前时间获取相应的时间点

  1. 秒数转为时分秒
  2. 获取当前月份的月初 格式为 yyyy-MM-01
  3. 获取本月份月底
  4. 获取当前季度月初 yyyy-MM-01
  5. 本季度月末 yyyy-MM-dd
  6. 获取指定年月最后一天
    来啊,上代码~~
public class DateUtil {
    private static int x;                  // 日期属性:年
    private static int y;                  // 日期属性:月
    private static int z;                  // 日期属性:日
    private static Calendar localTime = Calendar.getInstance();     // 当前日期

    /**
     * 获取当前日期 格式为 yyyy-MM-dd
     *
     * @return
     */
    public static String today() {
        String strY = null;
        String strZ = null;
        x = localTime.get(Calendar.YEAR);
        y = localTime.get(Calendar.MONTH) + 1;
        z = localTime.get(Calendar.DATE);
        strY = y >= 10 ? String.valueOf(y) : ("0" + y);
        strZ = z >= 10 ? String.valueOf(z) : ("0" + z);
        return x + "-" + strY + "-" + strZ;
    }
    /**
     * @method 秒数转为时分秒
     * @param second
     * @return
     */
    public static String secondToTime(long second){
    	try {
    		long days = second / 86400;           
            second = second % 86400;            
            long hours = second / 3600;            
            second = second % 3600;                
            long minutes = second /60;           
            second = second % 60;             
            if(days>0){
                return days + "天" + hours + "小时" + minutes + "分" + second + "秒";
            }else if(hours>0){
                return hours + "小时" + minutes + "分" + second + "秒";
            }else if (minutes > 0) {
            	return minutes + "分" + second + "秒";
            }else {
            	return second + "秒";
            }
		} catch (Exception e) {
			return "";
		}
        
    }

    /**
     * 获取当前月份的月初 格式为 yyyy-MM-01
     *
     * @return
     */
    public static String thisMonth() {
        String strY = null;
        x = localTime.get(Calendar.YEAR);
        y = localTime.get(Calendar.MONTH) + 1;
        strY = y >= 10 ? String.valueOf(y) : ("0" + y);
        return x + "-" + strY + "-01";
    }

    /**
     * 获取本月份月底
     *
     * @return
     */
    public static String thisMonthEnd() {
        String strY = null;
        String strZ = null;
        boolean leap = false;
        x = localTime.get(Calendar.YEAR);
        y = localTime.get(Calendar.MONTH) + 1;
        if (y == 1 || y == 3 || y == 5 || y == 7 || y == 8 || y == 10 || y == 12) {
            strZ = "31";
        }
        if (y == 4 || y == 6 || y == 9 || y == 11) {
            strZ = "30";
        }
        if (y == 2) {
            leap = leapYear(x);
            if (leap) {
                strZ = "29";
            } else {
                strZ = "28";
            }
        }
        strY = y >= 10 ? String.valueOf(y) : ("0" + y);
        return x + "-" + strY + "-" + strZ;
    }

    /**
     * 获取当前季度月初 yyyy-MM-01
     *
     * @return
     */
    public static String thisSeason() {
        String dateString = "";
        x = localTime.get(Calendar.YEAR);
        y = localTime.get(Calendar.MONTH) + 1;
        if (y >= 1 && y <= 3) {
            dateString = x + "-" + "01" + "-" + "01";
        }
        if (y >= 4 && y <= 6) {
            dateString = x + "-" + "04" + "-" + "01";
        }
        if (y >= 7 && y <= 9) {
            dateString = x + "-" + "07" + "-" + "01";
        }
        if (y >= 10 && y <= 12) {
            dateString = x + "-" + "10" + "-" + "01";
        }
        return dateString;
    }

    /**
     * 本季度月末 yyyy-MM-dd
     *
     * @return
     */
    public static String thisSeasonEnd() {
        String dateString = "";
        x = localTime.get(Calendar.YEAR);
        y = localTime.get(Calendar.MONTH) + 1;
        if (y >= 1 && y <= 3) {
            dateString = x + "-" + "03" + "-" + "31";
        }
        if (y >= 4 && y <= 6) {
            dateString = x + "-" + "06" + "-" + "30";
        }
        if (y >= 7 && y <= 9) {
            dateString = x + "-" + "09" + "-" + "30";
        }
        if (y >= 10 && y <= 12) {
            dateString = x + "-" + "12" + "-" + "31";
        }
        return dateString;
    }

    /**
     * 获取当前年初 yyyy-01-01
     *
     * @return
     */
    public static String thisYear() {
        x = localTime.get(Calendar.YEAR);
        return x + "-01" + "-01";
    }

    /**
     * 获取当前年底 yyyy-12-31
     * @return
     */
    public static String thisYearEnd() {
        x = localTime.get(Calendar.YEAR);
        return x + "-12" + "-31";
    }

    public static String getLastDayOfMonth(String year, String month) {
        Calendar cal = Calendar.getInstance();
        //年
        cal.set(Calendar.YEAR, Integer.parseInt(year));
        //月,因为Calendar里的月是从0开始,所以要-1
        cal.set(Calendar.MONTH, Integer.parseInt(month) - 1);
        //日,设为一号
        cal.set(Calendar.DATE, 1);
        //月份加一,得到下个月的一号
        cal.add(Calendar.MONTH,1);
        //下一个月减一为本月最后一天
        cal.add(Calendar.DATE, -1);
        return String.valueOf(cal.get(Calendar.DAY_OF_MONTH));//获得月末是几号
    }

    public static void main(String[] argc) {
        System.out.println(getLastDayOfMonth("2019", "09"));
        System.out.println(thisMonthEnd());
    }
### 回答1: Java中的switch case语句用于检查某个变量或表达式的值,然后根据值来执行相应的代码块。语法如下: ``` switch (expression) { case value1: // 当 expression 等于 value1 时执行的代码 break; case value2: // 当 expression 等于 value2 时执行的代码 break; ... default: // 当 expression 与所有 case 值都不匹配时执行的代码 } ``` expression可以是byte、short、char、int类型的变量,或者是返回这些类型值的表达式。case值必须是与expression相同类型的常量表达式。每个case块中的代码执行后必须使用break语句来终止switch语句,否则代码将继续执行到下一个case块。如果没有与expression匹配的case值,则执行default块中的代码。 ### 回答2: Java中的switch case是一种用于多分支选择的语句。它可以根据不同的条件值执行不同的代码块。 switch case语句由一个表达式和多个case子句组成。首先,表达式的值会与每个case子句的常量值进行匹配。如果匹配成功,则执行与该case子句关联的代码块,然后直接跳出switch语句。如果没有匹配的case,可以使用default子句作为默认情况,执行default子句的代码块。 switch case的使用可以提高代码的可读性和可维护性,尤其是在需要根据某个表达式值进行多种不同操作时。 然而,需要注意的是,switch case只能作用于整型,字符型和枚举类型。不能用于浮点型和布尔型。另外,case子句中的值必须是常量,不可以是变量或表达式。 在编写switch case语句时,应当注意正确使用`break`语句来结束每个case代码块。如果省略了`break`语句,则会造成“穿透”现象,即匹配成功的case之后的所有代码块都会被执行。 下面是一个简单的switch case示例: ``` int day = 3; String dayOfWeek; switch (day) { case 1: dayOfWeek = "星期一"; break; case 2: dayOfWeek = "星期二"; break; case 3: dayOfWeek = "星期三"; break; case 4: dayOfWeek = "星期四"; break; case 5: dayOfWeek = "星期五"; break; default: dayOfWeek = "无效的日期"; break; } System.out.println(dayOfWeek); ``` 在这个例子中,根据变量`day`的值,选择不同的case来给`dayOfWeek`赋值,并在最后将结果输出。如果`day`的值为3,则输出"星期三"。如果`day`的值不在1-5之间,则输出"无效的日期"。 ### 回答3: Java中的switch case语句是一种用于多个条件判断的控制结构。它通常用于需要根据不同条件执行不同动作的情况下。 switch case语句由一个被判断的表达式和多个case语句组成。根据表达式的值,程序会根据匹配的case语句来执行相应的代码块。 switch(case)语句的基本语法如下: ``` switch (表达式) { case 值1: // 值1匹配时执行的代码 break; case 值2: // 值2匹配时执行的代码 break; case 值3: // 值3匹配时执行的代码 break; ... default: // 所有case都不匹配时执行的代码 } ``` 在执行switch case语句时,首先会计算表达式的值,然后将其与每个case的值进行比较。如果匹配到某个case,就会执行对应的代码块,并且在代码块末尾一般会有一个`break`语句来跳出switch语句,避免继续执行后续的case。如果没有找到匹配的case,则会执行默认的代码块(default)。 需要注意的是,在case语句中的值必须是与表达式的值类型相同,通常使用整数、字符或枚举类型。 switch case语句相比于多个if-else语句,可以提高代码的可读性和执行效率。当需要根据不同条件执行不同操作时,可以使用switch case语句来简化代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值