loveshangzlw 2016-07-17 09:20 采纳率: 21.7%
浏览 1814
已结题

用Java将一个XX年XX月XX天变成一个6位的字符串。

如:12年转换后120000;12年1天 转换后是 120001,12年1月12天转换后是120112,
12年3月 转换后 是120300. 3天转换后就是 000003 。没有年前面就是00,没有月中间两位就是00 麻烦帮我写一个方法用于这样的转换。

    import com.jfinal.kit.StrKit;

public class DataTransfer {
public String getxq(String xqms) {
int indexof1 = 0;
int indexof2 = 0;
String n = "";// 年
String y = "";// 月
String r = "";// 天
if (StrKit.isBlank(xqms)) {
// 判断传入的参数是否为空
return "000000";
} else {
if (xqms.contains("年") && xqms.contains("月") && xqms.contains("天")) {
// 传入的字符串同时包含了"年月天"
indexof1 = xqms.indexOf("年");
n = xqms.substring(0, indexof1);
n = zfc(n);
indexof1 = xqms.indexOf("月");
indexof2 = xqms.indexOf("年") + 1;
y = xqms.substring(indexof2, indexof1);
y = zfc(y);
indexof1 = xqms.indexOf("天");
indexof2 = xqms.indexOf("月") + 1;
r = xqms.substring(indexof2, indexof1);
r = zfc(r);
return n + y + r;
} else if (!xqms.contains("年") && xqms.contains("月")
&& xqms.contains("天")) {
// 传入的字符串包含了"月天",但不包含"年"
indexof2 = xqms.indexOf("月");
y = xqms.substring(0, indexof2);
y = zfc(y);
indexof1 = xqms.indexOf("天");
indexof2 = indexof2 + 1;
r = xqms.substring(indexof2, indexof1);
r = zfc(r);
return "00" + y + r;
} else if (xqms.contains("年") && xqms.contains("月")
&& !xqms.contains("天")) {
// 传入的字符串包含了"年月",但不包含"天"
indexof1 = xqms.indexOf("年");
n = xqms.substring(0, indexof1);
n = zfc(n);
indexof1 = xqms.indexOf("月");
indexof2 = xqms.indexOf("年") + 1;
y = xqms.substring(indexof2, indexof1);
y = zfc(y);
return n + y + "00";
} else if (xqms.contains("年") && !xqms.contains("月")
&& xqms.contains("天")) {
// 传入的字符串包含了"年日",但不包含"月"
indexof1 = xqms.indexOf("年");
n = xqms.substring(0, indexof1);
n = zfc(n);
indexof1 = xqms.indexOf("天");
indexof2 = xqms.indexOf("年") + 1;
r = xqms.substring(indexof2, indexof1);
r = zfc(r);
return n + "00" + r;
} else if (!xqms.contains("年") && !xqms.contains("月")
&& xqms.contains("天")) {
// 传入的字符串只包含"天"
indexof1 = xqms.indexOf("天");
r = xqms.substring(0, indexof1);
r = zfc(r);
return "0000" + r;
} else {
return "000000";
}
}

}

/**
 * 用于判断传入参数的位数,没有2位,用"0"来补齐2位。
 * 
 * @param xx
 * @return
 * @author Penstaro
 */
public String zfc(String xx) {
    if (xx.length() == 2) {
        return xx;
    } else if (xx.length() == 1) {
        String a = "0" + xx;
        return a;
    } else if (xx.length() == 0) {
        return "00";
    } else {
        return "00";
    }
}

}

  • 写回答

7条回答 默认 最新

  • qianao 2016-07-17 10:00
    关注

    你应该告诉大家需要使用哪种语言

    评论

报告相同问题?

悬赏问题

  • ¥15 求chat4.0解答一道线性规划题,用lingo编程运行,第一问要求写出数学模型和lingo语言编程模型,第二问第三问解答就行,我的ddl要到了谁来求了
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名
  • ¥15 maple软件,用solve求反函数出现rootof,怎么办?
  • ¥65 汇编语言除法溢出问题
  • ¥15 Visual Studio问题
  • ¥20 求一个html代码,有偿
  • ¥100 关于使用MATLAB中copularnd函数的问题
  • ¥20 在虚拟机的pycharm上
  • ¥15 jupyterthemes 设置完毕后没有效果