我希望用户获得六位数号码并将其分为3个部分(日,月,年)
示例:
int date=111213;
day =11;
month =12;
year =13;
我想我必须将它转换为 string 然后使用substring()我可以这样做。
任何简单的想法?
答案 0 :(得分:6)
怎么样:
// Assuming a more sensible format, where the logically most significant part
// is the most significant part of the number too. That would allow sorting by
// integer value to be equivalent to sorting chronologically.
int day = date % 100;
int month = (date / 100) % 100;
int year = date / 10000;
// Assuming the format from the question (not sensible IMO)
int year = date % 100;
int month = (date / 100) % 100;
int day = date / 10000;
(你 存储你的数据这样开始吗?Ick。)
答案 1 :(得分:1)
将日期存储为这样的整数并不理想,但是如果你必须这样做 - 并且你确定该数字将始终使用指定的格式 - 那么你可以轻松地提取日期,月份和年:
int day = date / 10000;
int month = (date / 100) % 100;
int year = date % 100;
答案 2 :(得分:1)
你可以用模运算来做到这一点:
int day = date / 10000;
int month = (date / 100) % 100;
int year = date % 100;
答案 3 :(得分:0)
以下是Java中没有优化的解决方案:
final int value = 111213;
int day;
int month;
int year;
day = value / 10000;
month = (value - (day * 10000)) / 100;
year = (value - (day * 10000)) - month * 100;