找回密码
 加入
搜索
查看: 1652|回复: 7

自定义函数问题

[复制链接]
发表于 2008-12-18 19:52:28 | 显示全部楼层 |阅读模式
请问定义实现以下功能的函数:
输入 总分钟数,如560分钟,输出所用,时间,分钟。如何写呢

解释一下,就是560分钟等于多少小时多少分钟?
$time_min = 560
Func ($time_min)
.........;怎么写呢
endfunc

需要返回hour和min,即有2个返回值。谢谢楼下的,但只返回一个值。

[ 本帖最后由 xiaolt2008 于 2008-12-21 18:03 编辑 ]
发表于 2008-12-18 20:44:07 | 显示全部楼层
$a=InputBox("","","")
MsgBox(0,"",sfm($a) )


Func sfm($shuzhi)
If $shuzhi<=60 Then
If $shuzhi<60 Then
        $ok="0小时"&$shuzhi&"分00秒"
Else
        $ok="1小时00分00秒"
        EndIf
Else
$sa=$shuzhi/60        
$v1=StringSplit($sa,".")
$jd1=$v1[1]
$a2=("0."&$v1[2])*60
$v2=StringSplit($a2,".")
$jd2=$v2[1]
If $jd2<10 Then
$jd2="0"&$jd2
EndIf
$a3=("0."&$v2[2])*60
$jd3=Round($a3)
If $jd3<10 Then
$jd3="0"&$jd3
EndIf
$ok=$jd1&"小时"&$jd2&"分"&$jd3&"秒"
EndIf
return $ok
EndFunc


我也没有什么好办法,将就地用下吧,谁有更好的办法也贡献下吧








[ 本帖最后由 gto250 于 2008-12-18 20:51 编辑 ]
发表于 2008-12-18 21:08:21 | 显示全部楼层
楼上的领悟了楼主的意思?

输入 总分钟数,如560分钟,输出所用,时间,分钟。???

我看得莫明其妙。。。
发表于 2008-12-18 22:59:02 | 显示全部楼层
$time_min = 560
MsgBox(0, 0, time($time_min))
Func time($time)
        If $time < 0 Then
                MsgBox(0, 0, "请输入正数")
        Else
                Return Int($time / 60) & "小时" & Mod($time, 60) & "分"
        EndIf
EndFunc
 楼主| 发表于 2008-12-19 17:23:07 | 显示全部楼层
原帖由 大绯狼 于 2008-12-18 22:59 发表
$time_min = 560
MsgBox(0, 0, time($time_min))
Func time($time)
        If $time < 0 Then
                MsgBox(0, 0, "请输入正数")
        Else
                Return Int($time / 60) & "小时" & Mod($time, 60) & "分"
        EndIf
EndFunc


能够Return $h = Int($time / 60)
       Return $m = mod($time, 60)
吗?
这样我就能直接调用$h和$m的数值进行计算了
 楼主| 发表于 2008-12-21 18:00:35 | 显示全部楼层
原帖由 gto250 于 2008-12-18 20:44 发表
[au3]$a=InputBox("","","")
MsgBox(0,"",sfm($a) )


Func sfm($shuzhi)
If $shuzhi

谢谢大家的提示,我通过其它的方法,就是把结果再划分的方法得到了2个数值,用StringSplit函数,但更希望有直接返回2个数的方法。代码很简单,给大家看看。
#include <date.au3>
$a=InputBox("","","")
MsgBox(0,"",sfm($a) )
$s = sfm($a)
$time= StringSplit($s,",")
$hour = $time[1]
$min = $time[2]
MsgBox(0,"时间是",$hour&"时"&$min&"分")

Func sfm($shuzhi)
$shuzhi= Int($shuzhi)
If $shuzhi<60 Then
        $h = 0
        $m = $shuzhi
        Else
$h=$shuzhi/60        
$h=Int($h)
$m = $shuzhi - $h*60
EndIf
$ok=$h&","&$m
return $ok
EndFunc
发表于 2008-12-21 20:56:03 | 显示全部楼层

好象没那么复杂啊?

#include <Date.au3>
Global $Hour,$Min,$Sec
$Temp_min = 560 * 60 * 1000
_TicksToTime($Temp_min,$Hour,$Min,$Sec)
MsgBox(262144,'' , $Hour & "小时" & $Min & "分钟") 



看看是不是你需要的
 楼主| 发表于 2008-12-23 17:24:26 | 显示全部楼层

回复 7# amgloon 的帖子

谢谢,但不需要返回当前时间,我是想要做个闹钟
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-5-6 19:47 , Processed in 0.075616 second(s), 19 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表