Lin-JN 发表于 2023-4-19 04:28:30

来点干货,懂的自取,不懂的和高手绕道


    private static final String _time = "yyyy-MM-dd HH-mm-ss";
    /** 一天的秒数 */
    private static final int _day = 24 * 60 * 60;


    /**
   * 秒数转换成 小时 + 分钟 + 秒
   *
   * @param seconds 秒
   * @return x小时 x分钟 x秒
   */
    public static String secondsToTime(int seconds) {
      int h = seconds / 3600; // 小时
      int m = (seconds % 3600) / 60; // 分钟
      int s = (seconds % 3600) % 60; // 秒

      String hh = h > 0 ? (h + "时") : "";
      String mm = m > 0 ? (m + "分") : "";
      String ss = s > 0 ? (s + "秒") : "";

      return hh + mm + ss;
    }

    /**
   * 将数字以 x亿 x万 x 的形式显示<br>
   * x 值为 0 时不显示
   * @param num 数字
   * @return x亿x万x
   */
    public static String tenThousands(long num) {
      int m = (int) (num / 100000000); // 亿
      int t = (int) ((num % 100000000) / 10000); //万
      int k = (int) (num % 10000); //千

      String ms = m > 0 ? (m + "亿") : "";
      String ts = t > 0 ? (t + "万") : "";
      String ks = k > 0 ? (k + "") : "";

      return ms + ts + ks;
    }

    /**
   * 指定日期开启距今时间<br>
   * 可将时间设为指定 lastTime(String date) 类型随时调用
   * @return 2023-04-07 19-00-00
   * @throws ParseException throws
   */
    public static String lastTime() throws ParseException {

      String date = "2023-04-07 19-00-00";
      SimpleDateFormat simpleDateFormat = new SimpleDateFormat(_time); //24小时制
      long last = simpleDateFormat.parse(date).getTime();
      long now = System.currentTimeMillis();

      long lastTime = (now - last) / 1000L; // 秒数
      String day = lastTime / _day + "天";

      return day + secondsToTime((int) (lastTime % _day));
    }很实用的东西,再附上debug参数,随时查看自己写的是不是想要的结果

    public static void main(String[] args) throws ParseException {
// double d = 12345.67890; // 这是写小数点保留所用的debug数据
      int t = 25678;
      int i = 2047073560;
      System.out.println(secondsToTime(t));
      System.out.println(tenThousands(i));
      System.out.println(lastTime());
    }懂的自取,高手别吱声,不懂的绕道吧。

顺便广告一下:圣子默默的个人空间_哔哩哔哩_bilibili 欢迎各位加入养老服,长期更新,技术有保障,不断更新更多有趣的玩法。

data7691 发表于 2023-4-19 09:44:30

似懂非懂


可運用的地方真多:loveliness:

dk52 发表于 2023-4-29 13:04:14

666666666666666666666

allensteven 发表于 2023-6-9 11:54:52



谢谢,好人一生平安

ddd123 发表于 2023-9-1 22:33:29

感谢分享~~~

av4700 发表于 2023-9-12 21:00:54

5555555555555555

rumengtingxue 发表于 2024-1-23 17:29:57

谢谢大鹅的干货 。
MARK一下
private static final String _time = "yyyy-MM-dd HH-mm-ss";
    /** 一天的秒数 */
    private static final int _day = 24 * 60 * 60;


    /**
   * 秒数转换成 小时 + 分钟 + 秒
   *
   * @param seconds 秒
   * @return x小时 x分钟 x秒
   */
    public static String secondsToTime(int seconds) {
      int h = seconds / 3600; // 小时
      int m = (seconds % 3600) / 60; // 分钟
      int s = (seconds % 3600) % 60; // 秒

      String hh = h > 0 ? (h + "时") : "";
      String mm = m > 0 ? (m + "分") : "";
      String ss = s > 0 ? (s + "秒") : "";

      return hh + mm + ss;
    }

    /**
   * 将数字以 x亿 x万 x 的形式显示<br>
   * x 值为 0 时不显示
   * @param num 数字
   * @return x亿x万x
   */
    public static String tenThousands(long num) {
      int m = (int) (num / 100000000); // 亿
      int t = (int) ((num % 100000000) / 10000); //万
      int k = (int) (num % 10000); //千

      String ms = m > 0 ? (m + "亿") : "";
      String ts = t > 0 ? (t + "万") : "";
      String ks = k > 0 ? (k + "") : "";

      return ms + ts + ks;
    }

    /**
   * 指定日期开启距今时间<br>
   * 可将时间设为指定 lastTime(String date) 类型随时调用
   * @return 2023-04-07 19-00-00
   * @throws ParseException throws
   */
    public static String lastTime() throws ParseException {

      String date = "2023-04-07 19-00-00";
      SimpleDateFormat simpleDateFormat = new SimpleDateFormat(_time); //24小时制
      long last = simpleDateFormat.parse(date).getTime();
      long now = System.currentTimeMillis();

      long lastTime = (now - last) / 1000L; // 秒数
      String day = lastTime / _day + "天";

      return day + secondsToTime((int) (lastTime % _day));
    }
复制代码
很实用的东西,再附上debug参数,随时查看自己写的是不是想要的结果

    public static void main(String[] args) throws ParseException {
// double d = 12345.67890; // 这是写小数点保留所用的debug数据
      int t = 25678;
      int i = 2047073560;
      System.out.println(secondsToTime(t));
      System.out.println(tenThousands(i));
      System.out.println(lastTime());
    }
复制代码
懂的自取,高手别吱声,不懂的绕道吧。

顺便广告一下:圣子默默的个人空间_哔哩哔哩_bilibili 欢迎各位加入养老服,长期更新,技术有保障,不断更新更多有趣的玩法。

3803348@qq.com 发表于 2024-3-20 22:05:05

蟹蟹大大無司的分享 好东西 谢谢

siisii 发表于 2024-4-23 10:43:26

不懂 但是感觉很牛逼
页: [1]
查看完整版本: 来点干货,懂的自取,不懂的和高手绕道