使用按位运算从int日期中提取月份(yyyyMMdd)

cod*_*123 -2 c c# c++ bitwise-operators

是否可以int使用某些按位运算符从表示为(格式YYYYMMDD,例如20110401)的日期中提取月份?

如果是这样,怎么办呢?

编辑:我目前正在使用20110401%10000/100.我认为按位可能会更快.DateTime.Parse等对我想做的事情来说太慢了.

Mar*_*ers 8

不,因为按位运算符使用数字的二进制表示.您的日期使用十进制表示法编码.

你可以使用算术运算符来做到这一点:

int date = 20110401;

int day = date % 100;
int month = (date / 100) % 100;
int year = date / 10000;
Run Code Online (Sandbox Code Playgroud)