将6位数字分成3个部分?

时间:2011-02-14 14:39:43

标签: c# split

我希望用户获得六位数号码并将其分为3个部分(日,月,年)

示例:

int date=111213;
day =11;
month =12;
year =13;

我想我必须将它转换为 string 然后使用substring()我可以这样做。

任何简单的想法?

4 个答案:

答案 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;