| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1207 人关注过本帖
标题:请帮我看一下这个用vpf6.0写的程序文件
只看楼主 加入收藏
xiao520
Rank: 2
等 级:论坛游民
帖 子:8
专家分:10
注 册:2011-11-19
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:10 
请帮我看一下这个用vpf6.0写的程序文件
这是
以中文显示当前系统日期.rar (4.73 KB)

我自己写的一个将当前日期转换为中文显示出来的程序文件。想请各位前辈帮忙看一下,还有哪些地方需要改进的。
谢谢。
搜索更多相关主题的帖子: 中文 
2011-11-21 12:21
tlliqi
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:204
帖 子:15453
专家分:65956
注 册:2006-4-27
收藏
得分:1 
还不错,加以肯定。
2011-11-21 19:22
xs591222
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:28
帖 子:682
专家分:1299
注 册:2009-3-1
收藏
得分:1 
一个字:好
2011-11-21 21:17
qjbzjp
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:尧的故乡
等 级:贵宾
威 望:48
帖 子:1914
专家分:4397
注 册:2007-3-14
收藏
得分:8 
做成自定义函数,语句会少很多:
?c_date()

FUNCTION c_date
PARAMETERS n
    LOCAL s,n1,n2,n3,n4
    SET CENTURY on
    SET DATE ymd
    s=""
    n3=""
    n1=dtoc(date())
    n2=SUBSTR(n1,9,1)
    IF !n2="0"
        n3=IIF(n2="1","",c_z(n2))+"十"   
    ENDIF
    n3=n3+IIF(RIGHT(n1,1)="0","",c_z(RIGHT(n1,1)))
    FOR i =1 to 4
        n4=c_z(SUBSTR(n1,i,1))
        s=s+n4
    NEXT
    s=s+"年"+cmonth(DATE())+n3+"日"
    RETURN "当前的系统日期为:"+s
ENDFUNC

FUNCTION c_z
PARAMETERS m
    RETURN SUBSTR("O一二三四五六七八九",2*VAL(m)+1,2)
ENDFUNC

相互学习,互相交流,共同提高。
2011-11-21 21:54
xiao520
Rank: 2
等 级:论坛游民
帖 子:8
专家分:10
注 册:2011-11-19
收藏
得分:0 
谢谢,我试过了,可以用。确实减少了很多的语句。
可是月份显示出来的是英文。
那如何将月份改成显示为中文呢?
谢谢…………
2011-11-22 12:22
qjbzjp
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:尧的故乡
等 级:贵宾
威 望:48
帖 子:1914
专家分:4397
注 册:2007-3-14
收藏
得分:2 
哦!VFP6.0下CMONTH()函数的确不行,楼主还在用6.0?
再加个对月份的判断就是了。

相互学习,互相交流,共同提高。
2011-11-23 19:43
qjbzjp
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:尧的故乡
等 级:贵宾
威 望:48
帖 子:1914
专家分:4397
注 册:2007-3-14
收藏
得分:1 
s=s+"年"+IIF(SUBSTR(n1,6,1)="1","十","")+c_z(SUBSTR(n1,7,1))+"月"+n3+"日"

相互学习,互相交流,共同提高。
2011-11-23 19:51
qingfameng
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:35
帖 子:964
专家分:3019
注 册:2010-2-6
收藏
得分:5 
(笨法子,初学者可看)   先做张表 rq ,只有一个字符型字段 b, 字段内每行写上:





...
二十九
三十
三十一

共32行。执行以下简单语句:
close all
 use rq
    datt=dtos(date())
    cm=substr(datt,5,2)
    cd=substr(datt,7,2)
    yy=''
 for n=1 to 4
     cy=substr(datt,n,1)     
     go val(cy)+1
     yy=yy+alltrim(b)
 endfor   
     go val(cm)+1
     mm=alltrim(b)
     go val(cd)+1
     dd=alltrim(b)
   
 ? "今天是:"+yy+"年"+mm+"月"+dd+"日"

2011-11-23 21:39
茵梦湖
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:31
帖 子:545
专家分:2180
注 册:2009-4-25
收藏
得分:2 

临时编了个~

? DateToCN(date())


Func DateToCN
para pc
local lsc
set cent on
set date ansi
lsc =strt(strt(strt(strt(subs(dtoc(pc),5),".1",".十"),".2",".二十"),".3",".三十"),".0",".")
lsc =chrtranc(strt(strt(strt(subs(lsc,2)," "),"0"),".","月"),"123456789","一二三四五六七八九") +"日"
retu "当前系统日期是: " +chrtranc(left(dtoc(pc),4),"1234567890","一二三四五六七八九〇")+"年" +lsc
2011-11-23 22:13
Tiger5392
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:88
帖 子:2775
专家分:2237
注 册:2006-5-17
收藏
得分:0 
*年的转换是直接读取汉字,不带几千几百几十的;月和日的转换是要读出几十几的。本办法如下
lcStr='一                               '+;
      '十一  十二  十三  十四  十五  十六  十七  十八  十九  二十  '+;
      '二十一二十二二十三二十四二十五二十六二十七二十八二十九三十  '+;
      '三十一'
ldDate=date()
return '当前系统日期是:'+;
       CHRTRANC(ALLTRIM(STR(YEAR(ldDdate))),'0123456789','〇一二三四五六七八九')+'年'+;
       alltrim(substr(lcStr,month(ldDate)*6-5,6))+'月'+;
       alltrim(substr(lcStr,day(ldDate)*6-5,6))+'日'

感言:学以致用。 博客:http://www./blog/user14/65009/index.shtml email:Tiger5392@
2011-11-24 15:34
快速回复:请帮我看一下这个用vpf6.0写的程序文件
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018947 second(s), 10 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved