xiaolt2008 发表于 2008-12-18 19:52:28

自定义函数问题

请问定义实现以下功能的函数:
输入 总分钟数,如560分钟,输出所用,时间,分钟。如何写呢

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

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

[ 本帖最后由 xiaolt2008 于 2008-12-21 18:03 编辑 ]

gto250 发表于 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
$a2=("0."&$v1)*60
$v2=StringSplit($a2,".")
$jd2=$v2
If $jd2<10 Then
$jd2="0"&$jd2
EndIf
$a3=("0."&$v2)*60
$jd3=Round($a3)
If $jd3<10 Then
$jd3="0"&$jd3
EndIf
$ok=$jd1&"小时"&$jd2&"分"&$jd3&"秒"
EndIf
return $ok
EndFunc

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






http://lwc.nhome.cn/code/showip.asp

[ 本帖最后由 gto250 于 2008-12-18 20:51 编辑 ]

sanhen 发表于 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

xiaolt2008 发表于 2008-12-19 17:23:07

原帖由 大绯狼 于 2008-12-18 22:59 发表 http://www.autoitx.com/images/common/back.gif
$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的数值进行计算了

xiaolt2008 发表于 2008-12-21 18:00:35

原帖由 gto250 于 2008-12-18 20:44 发表 http://www.autoitx.com/images/common/back.gif
$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
$min = $time
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

amgloon 发表于 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 & "分钟")


看看是不是你需要的

xiaolt2008 发表于 2008-12-23 17:24:26

回复 7# amgloon 的帖子

谢谢,但不需要返回当前时间,我是想要做个闹钟
页: [1]
查看完整版本: 自定义函数问题