| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1314 人关注过本帖
标题:关于日期的格式
只看楼主 加入收藏
fanjinyu9108
Rank: 2
等 级:论坛游民
帖 子:694
专家分:20
注 册:2014-1-16
结帖率:88.52%
收藏
已结贴  问题点数:20 回复次数:12 
关于日期的格式
日期显示有年月日,但是我想去掉年,仅显示月日,怎么搞啊,有没有简单的函数啊,查了下书,好像没有简单的函数啊
比如:2015-1-5,显示是1月5日。
搜索更多相关主题的帖子: 年月日 
2015-01-07 13:30
fanjinyu9108
Rank: 2
等 级:论坛游民
帖 子:694
专家分:20
注 册:2014-1-16
收藏
得分:0 
或者1-5也行
2015-01-07 13:30
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:4 
d="01/05/2015"
?month(ctod(d))
?day(ctod(d))

DO IT YOURSELF !
2015-01-07 13:35
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9841
专家分:27213
注 册:2012-2-5
收藏
得分:4 
?substr(TRANSFORM(val(dtos(DATE())),"9999年99月99日"),7)

坚守VFP最后的阵地
2015-01-07 13:45
lianliming
Rank: 2
等 级:论坛游民
帖 子:29
专家分:18
注 册:2009-5-24
收藏
得分:4 
比如:2015-1-5,显示是:2015.01,又如何操作呢?
2015-01-08 09:31
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9841
专家分:27213
注 册:2012-2-5
收藏
得分:0 
以下是引用lianliming在2015-1-8 09:31:37的发言:

比如:2015-1-5,显示是:2015.01,又如何操作呢?

left(dtoc(date()),7)

坚守VFP最后的阵地
2015-01-08 10:46
wangzhiyi
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:34
帖 子:366
专家分:684
注 册:2014-4-9
收藏
得分:4 
只要掌握好了函数,这些都是小问题,取年份的函数YEAR(日期数据),取月份函数MONTH(日期数据),取日函数DAY(日期数据).辅助其他函数,你想用什么格式显示都行.
2015-01-08 17:33
hu9jj
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:红土地
等 级:贵宾
威 望:400
帖 子:11857
专家分:43421
注 册:2006-5-13
收藏
得分:4 
对,要灵活运用。

活到老,学到老!http://www.(该域名已经被ISP盗卖了)E-mail:hu-jj@
2015-01-08 19:43
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:4 
写一个好用的日期类,自己想怎么用就怎么用。

授人以渔,不授人以鱼。
2015-01-08 22:10
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
这个类可以满足楼主上面说的所有需求:
程序代码:
CLEAR
dd1 = CREATEOBJECT("MyDate", 2015, 1, 5)            && 用指定日期创建一个类型为myData的实例对象
dd2 = CREATEOBJECT("MyDate", NULL, NULL, NULL)      && 用默认日期创建一个类型为myData的实例对象
dd1.FormatMask = "YYYY-M-DD"
? dd1.ToString()
dd1.FormatMask = "YYYY年MM月DD日"
? dd1.ToString()
dd1.FormatMask = "YY年MM月DD日"
? dd1.ToString()
dd1.FormatMask = "YY/MM-DD"
? dd1.ToString()
? dd2.ToString()
RELEASE ALL LIKE dd*                                && 如果dd不是局部变量则应手动从内存中释放
RETURN

* 自定义日期类
DEFINE CLASS MyDate AS Custom

    * 年、月、日属性,任何一个为零,均返回"无效日期"
    Year = 0
    Month = 0
    Day = 0
   
    * 输出格式掩码属性
    *     YYYY: 年份格式,可为4位YYYY或2位YY
    *       MM: 月份,2位时自动在左边补零,1位时不补零
    *       DD: 日,2位时自动在左边补零,1位时不补零
    * 年月日之间的分隔字符(串)可任意
    FormatMask = "YYYY-MM-DD"        && 默认格式
   
    * 用指定年、月、日初始化对象,若任一参数为NULL,则取当前系统日期对应值
    PROCEDURE Init(tnYear, tnMonth, tnDay)
       
        IF ISNULL(tnYear)
            tnYear = YEAR(DATE())
        ENDIF
        IF ISNULL(tnMonth)
            tnMonth = MONTH(DATE())
        ENDIF
        IF ISNULL(tnDay)
            tnDay = DAY(DATE())
        ENDIF
       
        WITH This
            IF .CheckValidity(tnYear, tnMonth, tnDay)
                .Year = tnYear
                .Month = tnMonth
                .Day = tnDay
            ENDIF
        ENDWITH
       
    ENDPROC
   
    * 检查日期的合法性
    HIDDEN FUNCTION CheckValidity(tnYear, tnMonth, tnDay)
        LOCAL lcCentury, lcDate, llValid
       
        lcCentury = SET("Century")
        lcDate = SET("Date")
       
        SET DATE TO ANSI
        SET CENTURY ON
       
        llValid = !EMPTY(CTOD(TRANSFORM(tnYear) + "." + TRANSFORM(tnMonth) + "." + TRANSFORM(tnDay)))
       
        SET CENTURY &lcCentury
        SET DATE TO &lcDate
       
        RETURN llValid
    ENDFUNC
   
    * 把日期转换为字符串
    FUNCTION ToString
        WITH This
            RETURN IIF(!EMPTY(.Year * .Month * .Day), .SetYear(.SetMonth(.SetDay(.FormatMask))), "无效日期")
        ENDWITH
    ENDFUNC
   
    *-- 以下为类的隐藏方法 ---*
   
    * 设置年份
    HIDDEN FUNCTION SetYear(tcMask)
        LOCAL lnLength, lnPos, lcYear
        lnLength = OCCURS("Y", tcMask)
        lnPos = AT("Y", tcMask)
        lcYear = RIGHT(TRANSFORM(This.Year), lnLength)
        RETURN STRTRAN(tcMask, REPLICATE("Y", lnLength), lcYear)
    ENDFUNC
   
    * 设置月份
    HIDDEN FUNCTION SetMonth(tcMask)
        LOCAL lnLength, lnPos, lcMonth
        lnLength = OCCURS("M", tcMask)
        lnPos = AT("M", tcMask)
        lcMonth = IIF(lnLength > 1, PADL(This.Month, lnLength, "0"), TRANSFORM(This.Month))
        RETURN STRTRAN(tcMask, REPLICATE("M", lnLength), lcMonth)
    ENDFUNC
   
    * 设置日
    HIDDEN FUNCTION SetDay(tcMask)
        LOCAL lnLength, lnPos, lcDay
        lnLength = OCCURS("D", tcMask)
        lnPos = AT("D", tcMask)
        lcDay = IIF(lnLength > 1, PADL(This.Day, lnLength, "0"), TRANSFORM(This.Day))
        RETURN STRTRAN(tcMask, REPLICATE("D", lnLength), lcDay)
    ENDFUNC

ENDDEFINE


运行效果:
图片附件: 游客没有浏览图片的权限,请 登录注册


授人以渔,不授人以鱼。
2015-01-09 04:09
快速回复:关于日期的格式
数据加载中...
 
   



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

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