⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 smptime.java

📁 java支持的短信平台
💻 JAVA
字号:
package com.khan.datetime;

import java.util.Calendar;

/**
 * 时间编码类
 * <p>Title: </p>
 * <p>Description: </p>
 * <p>Copyright: Copyright (c) 2006</p>
 * <p>Company: </p>
 * @author not attributable
 * @version 1.0
 */
public class SMPTime {

  public static long getDateTime() {
    Calendar now = Calendar.getInstance();
    return now.get(Calendar.SECOND)
      + 100L * now.get(Calendar.MINUTE)
      + 10000L * now.get(Calendar.HOUR)
      + 1000000L * now.get(Calendar.DATE)
      + 100000000L * (now.get(Calendar.MONTH) + 1)
      + 10000000000L * now.get(Calendar.YEAR);
  }

  public static String getSqlServerDateString(long datetime) {
    return getYear(datetime) + "-"
      + getMonth(datetime) + "-"
      + getDay(datetime) + " "
      + getHour(datetime) + ":"
      + getMinute(datetime) + ":"
      + getSecond(datetime);
  }

  /**
   * 取得当前时间整数形式
   * @return long
   */

  public static long getNow() {
    return getDateTime();
  }


  public static long getDay(boolean hour) {
    Calendar now = Calendar.getInstance();
    return now.get(Calendar.DATE)
      + 100L * (now.get(Calendar.MONTH) + 1)
      + 10000L * now.get(Calendar.YEAR);
  }

  public static long getTime(boolean hour) {
    Calendar now = Calendar.getInstance();
    return now.get(Calendar.SECOND)
      + 100L * now.get(Calendar.MINUTE)
      + 10000L * now.get(Calendar.HOUR);

  }

  /**
   * 取得指定时间的整数形式
   * @param year int
   * @param month int
   * @param day int
   * @param hour int
   * @param minute int
   * @param second int
   * @return long
   */
  public static long getDateTime(int year, int month, int day, int hour, int minute, int second) {
    return second + 100L * minute + 10000L * hour + 1000000L * day + 100000000L * month + 10000000000L * year;
  }


  /**
   * 转换 Calendar 形式时间为 long形式
   * @param date Calendar
   * @param year boolean
   * @return long
   */
  public static long getDateTime(Calendar date, boolean year) {
    int nYear = 0;
    if (year == true) {
      nYear = date.get(Calendar.YEAR);
    }

    return getDateTime(nYear, date.get(Calendar.MONTH) + 1, date.get(Calendar.DATE), date.get(Calendar.HOUR_OF_DAY), date.get(Calendar.MINUTE), date.get(Calendar.SECOND));
  }


  public static long getDateTime(long timeInSecond) {
    Calendar date = Calendar.getInstance();
    date.setTimeInMillis(timeInSecond * 1000);
    return getDateTime(date, true);
  }

  /**
   * 取得当前时间
   * @param year boolean 是否包含年份
   * @return long
   */
  public static long getDateTime(boolean year) {
    Calendar rightNow = Calendar.getInstance();
    return getDateTime(rightNow, year);
  }

  /**
   * 转换long的时间为java Calendar时间形式
   * @param time long
   * @return Calendar
   */
  public static Calendar getCalendar(long time) {
    Calendar now = Calendar.getInstance();
    now.set(getYear(time), getMonth(time), getDay(time), getHour(time), getMinute(time), getSecond(time));

    return now;
  }

  /**
   * 取得当前月份第一天的日期
   * @param year boolean
   * @return long
   */
  public static long getMonthStart(boolean year) {
    return getMonthStart(Calendar.getInstance(), year);
  }

  /**
   * 取得当前月第一天
   * @param now Calendar
   * @param year boolean 是否包含年份
   * @return long
   */
  public static long getMonthStart(Calendar now, boolean year) {
    int nYear = 0;
    if (year == true) {
      nYear = now.get(Calendar.YEAR);
    }

    return getDateTime(nYear, now.get(Calendar.MONTH) + 1, 0, 0, 0, 0);
  }

  /**
   * 取得时间中的年份
   * @param date long
   * @return int
   */
  public static int getYear(long date) {
    return (int) (date / 10000000000L);
  }

  /**
   * 取得时间中的月份
   * @param date long
   * @return int
   */
  public static int getMonth(long date) {
    return (int) ((date / 100000000L) % 100);
  }

  /**
   * 取得时间中的日
   * @param date long
   * @return int
   */
  public static int getDay(long date) {
    return (int) ((date / 1000000L) % 100);
  }

  /**
   * 取得时间中的小时
   * @param date long
   * @return int
   */
  public static int getHour(long date) {
    return (int) ((date / 10000L) % 100);
  }

  /**
   * 取得时间中的分钟
   * @param date long
   * @return int
   */
  public static int getMinute(long date) {
    return (int) ((date / 100L) % 100);
  }

  /**
   * 取得日期中的秒
   * @param date long
   * @return int
   */
  public static int getSecond(long date) {
    return (int) (date % 100);
  }

  /**
   * 取得当前时间中的秒
   * @return int
   */
  public static int getSecond() {
    Calendar now = Calendar.getInstance();
    return now.get(Calendar.SECOND);
  }

  /**
   * 计算用户年纪
   * @param birth long
   * @param time long
   * @return int
   */
  public static int getAge(long birth, long time) {
    return getYear(time - birth);
  }


  public static long getNextDay() {
    Calendar now = Calendar.getInstance();
    now.add(Calendar.DATE, 1);

    return now.get(Calendar.DATE)
      + 100L * (now.get(Calendar.MONTH) + 1)
      + 10000L * now.get(Calendar.YEAR);
  }

  public static long getDay() {
    Calendar now = Calendar.getInstance();
    return now.get(Calendar.DATE)
      + 100L * (now.get(Calendar.MONTH) + 1)
      + 10000L * now.get(Calendar.YEAR);
  }


  /**
   * 计算用户生日
   * @param age int
   * @param birth long
   * @param time long
   * @return long
   */
  public static long getBirth(int age, long birth, long time) {
    return birth + 10000000000L * (getAge(birth, time) - age);
  }

  public static void main(String[] args) { //test
    System.out.println(SMPTime.getSqlServerDateString( SMPTime.getNow()));
  }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -