你理解⽇期格式yyyymmdd的另类含义吗?
今天在10A代码上遇到⼀个需求,在所有有⽇期显⽰或者编辑的地⽅⽐如:yyyy/mm/dd,都要显⽰成和时间⽇期设置中设置的格式⼀致,⽬的是为了统⼀⽇期的格式在所有应⽤中的显⽰。⽇期显⽰格式有三种:(1),yyyy/mm/dd (2),dd/mm/yyyy (3),mm/dd/yyyy;(lzq:第⼀种表⽰year/month/day,如2010/06/10)如果这⾥的格式在时间⽇期设置菜单中被修改了,那么系统中其他任何地⽅有显⽰⽇期的都要显⽰成和设置的格式相同;
于是乎我就先到相应的cui inline,并且在每个有显⽰date and time的caption(lzq:CUI_INLINE_ITEM_TYPE_CAPTION)的地⽅和编辑date and time(lzq:CUI_INLINE_ITEM_TYPE_DATE) 的地⽅都修改了⼀遍,特别是在仅仅是显⽰的cui
inline(lzq:CUI_INLINE_ITEM_TYPE_DISPLAY_ONLY),⽇期格式的字符串数据必须要从另外的初始化函数中获得,这样我就到那个初始化函数,然后不停的复制粘贴,⽐如下⾯的代码:
switch (PhnsetGetDateFormat())
{
case 0:
kal_wsprintf(
g_tdl_edit_cntx.start_date,
"d/d/d",
ptask->due_time.nDay,
ptask->due_time.nMonth,
ptask->due_time.nYear);
break;
case 1:
kal_wsprintf(
g_tdl_edit_cntx.start_date,
"d/d/d",
ptask->due_time.nMonth,
ptask->due_time.nDay,
ptask->due_time.nYear);
break;
case 2:
kal_wsprintf(
g_tdl_edit_cntx.start_date,
"d/d/d",
ptask->due_time.nYear,
ptask->due_time.nDay,
ptask->due_time.nMonth);
break;
default:
kal_wsprintf(
g_tdl_edit_cntx.start_date,
"d/d/d",
ptask->due_time.nYear,
ptask->due_time.nMonth,
ptask->due_time.nDay);
break;
}
为了防⽌复制拷贝出错,我就⼀直在不停的code review并不停的在嘴上叨唠year month day,year month day,......
刚开始没有什么感觉,到后来念的快了,逐渐就变成了ymd,
念了⼀段时间了,慢慢感觉到了怪怪的......
日期字符串是什么你尝试快速⼤声连读:year month day,year month day,......,感觉到什么了吗?
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论