标题:编程的问题求助
只看楼主
只为她
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2018-2-20
结帖率:0
已结贴  问题点数:20 回复次数:3 
编程的问题求助
编程:输入一个日期,输出该日期所在月的天数。
搜索更多相关主题的帖子: 编程 输入 日期 输出 天数 
2018-02-20 09:30
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:323
帖 子:9621
专家分:26174
注 册:2012-2-5
得分:7 
ddate=date(2016,02,29)
?Day(Gomonth(Date(Year(dDate),Month(dDate),1),1)-1)

坚守VFP最后的阵地
2018-02-20 18:24
hu9jj
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:红土地
等 级:贵宾
威 望:396
帖 子:11713
专家分:43267
注 册:2006-5-13
得分:7 
尽管明显是作业题,但过年心情好,还是解答一下:
VFP有个在指定日期上加N个月的函数,我们可以利用在指定日期上加一个月的日期再减去指定的日期,就可以得到指定日期月份的天数。即:
ddate=date(2018,2,21)
?gomonth(ddate,1)-ddate
屏幕显示:28


活到老,学到老! http://www. E-mail:hu-jj@
2018-02-21 10:40
厨师王德榜
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:183
帖 子:942
专家分:4724
注 册:2013-2-16
得分:7 
再提供一个思路吧,某个日期所在月份的最后一天可能是 30 、31、28、29 ,这是我们无法确定的,
但是,他的下一个月的头一天一定是 :年.(月+1).01 对不对?也就是说下月的头一天是很好求得的,
那么 就用这个 年.(月+1).01 再减去一天,得到的日期值,就是这个月的最后一天。
再用day()提取出天数即可。根据这个思路,可以写一个Func()
dd1=CTOD('2012.2.20')
? IIF(MONTH(dd1) =12 ,31, DAY( DATE(YEAR(dd1) ,MONTH(dd1) + 1 ,1) -1 ))  && 返回值类型:整数形
当然,这个思路要避开月份是12月的,因为12月的日期,下月头一天,年份要加1 ,月份要改为1,
这样反而麻烦,所以上述语句再用一个IIF()结构,直接把月份=12的给出一个固定值31就可以了。
语句没有上面两位前辈精简,但是很好理解。
2018-02-25 11:40



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-484794-1-1.html




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

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