powerbuilder中,我取得数据类型字符串 201108,如何在数据窗口显示汉字的日期而且要为“二零一一年七月”

麻烦给出具体操作步骤,注意是汉字形式的日期,还要往前推一个月哦,急求!... 麻烦 给出具体操作步骤,注意是汉字形式的日期,还要往前推一个月哦,急求! 展开
 我来答
hit_lubin
2011-09-07 · TA获得超过7889个赞
知道大有可为答主
回答量:1554
采纳率:100%
帮助的人:2015万
展开全部
自己写一个函数:函数的输入参数是字符串,输出也是string,输出汉字。
比如输入2011输出二零一一这样的公用处理的函数,然后在外部计算倒退一个月的六位月份,并分别输入年和月输出就好了。

假设输入参数是as_str,函数如下:

string ls_year, ls_month
//得到年月
ls_year = left(as_str,4)
ls_month = right(as_str,2)
//先得到倒推一个月的年和月
if ls_month = '01' then
ls_year = string(integer(ls_year) - 1)
ls_month = '12'
else
ls_month = string(integer(ls_month) - 1, '00')
end if
integer li_count
string ls_char
string ls_newstr //存储转换后的串
ls_newstr = '' //初始化
//获取年份的汉字,逐字转换
for li_count = 1 to 4
ls_char = mid(ls_year ,li_count,1) //从年的第一位到第四位逐个转换
choose case ls_char
case '0'
ls_newstr += '零'
case '1'
ls_newstr += '一'
case '2'
ls_newstr += '二'
case '3'
ls_newstr += '三'
case '4'
ls_newstr += '四'
case '5'
ls_newstr += '五'
case '6'
ls_newstr += '六'
case '7'
ls_newstr += '七'
case '8'
ls_newstr += '八'
case '9'
ls_newstr += '九'
end choose
end for
ls_newstr += '年' //得到年的部分
choose case ls_month //转月的部分
case '01'
ls_newstr += ‘一'
case '02'
ls_newstr += '二'
case '03'
ls_newstr += '三'
case '04'
ls_newstr += '四'
case '05'
ls_newstr += '五'
case '06'
ls_newstr +='六'
case '07'
ls_newstr += '七'
case '08'
ls_newstr += '八'
case '09'
ls_newstr += '九'
case '10'
ls_newstr += '十'
case '11'
ls_newstr += '十一'
case '12'
ls_newstr += '十二'
end choose
ls_newstr += '月'
return ls_newstr

上边是函数的代码。假设函数名叫f_get_date(string as_str)
调用的时候,假设你的日期是'201108'
string ls_date
ls_date = f_get_date('201108')
可以得到ls_date = '二零一一年七月'
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式