Округление числа до ближайшего кратного 3

Я построил этот подход, ища, как отправить сообщение в повторяющийся график. Я нашел подход, в котором вы ссылаетесь на свойство Inspector созданного сообщения, не добавляло подпись, которую я хотел (у меня есть несколько учетных записей, настроенных в Outlook, с отдельными подписями.)

Подход ниже справедлив гибкий и все еще простой.

    Private Sub Add_Signature(ByVal addy as String, ByVal subj as String, ByVal body as String)
       Dim oMsg As MailItem
       Set oMsg = Application.CreateItem(olMailItem)
       oMsg.To = addy
       oMsg.Subject = subj
       oMsg.Body = body
       Dim sig As String
       ' Mysig is the name you gave your signature in the OL Options dialog 
       sig = ReadSignature("Mysig.htm")
       oMsg.HTMLBody = Item.Body & "<p><BR/><BR/></p>" & sig ' oMsg.HTMLBody
       oMsg.Send
       Set oMsg = Nothing
    End Sub

    Private Function ReadSignature(sigName As String) As String
       Dim oFSO, oTextStream, oSig As Object
       Dim appDataDir, sig, sigPath, fileName As String
       appDataDir = Environ("APPDATA") & "\Microsoft\Signatures"
       sigPath = appDataDir & "\" & sigName

       Set oFSO = CreateObject("Scripting.FileSystemObject")
       Set oTextStream = oFSO.OpenTextFile(sigPath)
       sig = oTextStream.ReadAll
       ' fix relative references to images, etc. in sig
       ' by making them absolute paths, OL will find the image
       fileName = Replace(sigName, ".htm", "") & "_files/"
       sig = Replace(sig, fileName, appDataDir & "\" & fileName)
       ReadSignature = sig
    End Function
33
задан dotty 15 July 2010 в 09:04
поделиться

4 ответа

    if(n > 0)
        return Math.ceil(n/3.0) * 3;
    else if( n < 0)
        return Math.floor(n/3.0) * 3;
    else
        return 3;
67
ответ дан 27 November 2019 в 15:57
поделиться

(n - n mod 3)+3

1
ответ дан 27 November 2019 в 15:57
поделиться
if(x%3==0)
    return x
else
    return ((x/3|0)+1)*3
-1
ответ дан 27 November 2019 в 15:57
поделиться

Вот и ты!

Number.prototype.roundTo = function(num) {
    var resto = this%num;
    if (resto <= (num/2)) { 
        return this-resto;
    } else {
        return this+num-resto;
    }
}

Примеры:

y = 236.32;
x = y.roundTo(10);

// results in x = 240

y = 236.32;
x = y.roundTo(5);

// results in x = 235
20
ответ дан 27 November 2019 в 15:57
поделиться
Другие вопросы по тегам:

Похожие вопросы: