如何拆分整数中的数字并逆序拼接得到指定格式的日期?
注意:你示例代码中写的
int birth = 011112;带有前导0,在C、C++、Java等支持八进制常量的语言中,这个值会被识别为八进制数,和你预期的十进制11112值不符,定义变量时请去掉前导0写作int birth = 11112;。
不需要数组、不需要循环,仅用整数的整除和取模操作就可以拆分出年、月、日三个部分,直接格式化输出即可实现需求。
C/C++ 实现代码
#include <stdio.h> int main() { int birth = 11112; int day = birth % 100; int month = (birth / 100) % 100; int year = birth / 10000; printf("Your birth date is %02d.%02d.%02d.\n", day, month, year); return 0; }
Python 实现代码
birth = 11112 day = birth % 100 month = (birth // 100) % 100 year = birth // 10000 print(f"Your birth date is {day:02d}.{month:02d}.{year:02d}.")
逻辑说明
- 取日:对100取模
% 100,直接得到整数最右侧的两位数字 - 取月:先整除100去掉最后两位,再对100取模,得到中间两位数字
- 取年:整除10000去掉后面四位,得到最左侧的数字
- 输出时使用
%02d或者对应语言的两位补零格式控制,自动为不足两位的部分补前导0,符合要求的01格式。
内容的提问来源于stack exchange,提问作者ELWooD
相关产品推荐
相关产品推荐

