2016-03-19 30 views
2

私は、毎週日曜日の午後3時にカウントダウンするカウントダウンタイマーを私たちのウェブサイトに持っています。タイマーは、秒が30に達した分だけ減少しているように思えます。時間も同じです。ここでは...私とタイマーのために供給されたコードは、ここで私のWebページ上で見ることができますhttp://www.onlinecarbooty.com/go-booting-front.aspxカウントダウンタイマーが完全に機能していません

VB ...

Dim seconds As Integer = DateDiff(DateInterval.Second, Date.Now, BootSale.nextDOW(DayOfWeek.Sunday)) 
    Dim days, hours, minutes As Integer 
    days = seconds/86400 
    hours = (seconds Mod 86400)/3600 
    minutes = (seconds Mod 3600)/60 
    lblTimer.Text = days & " Day(s) " & hours & " Hour(s) " & minutes & " Minute(s) " ' & seconds Mod 60 & " Seconds" 

    If Date.Now.DayOfWeek.ToString = "Sunday" And Date.Now.Hour >= 15 Then 
     lblTimer.Text = "NEW SALE JUST GONE LIVE!" 
    End If 

Protected Sub timer1_tick(sender As Object, e As EventArgs) 
    Dim seconds As Integer = DateDiff(DateInterval.Second, Date.Now, BootSale.nextDOW(DayOfWeek.Sunday)) 
    Dim days, hours, minutes As Integer 
    days = seconds/86400 
    hours = (seconds Mod 86400)/3600 
    minutes = (seconds Mod 3600)/60 
    lblTimer.Text = days & " Day(s) " & hours & " Hour(s) " & minutes & " Minute(s) " & seconds Mod 60 & " Seconds" 
End Sub 

フロントエンド...

<asp:Timer ID="timer1" runat="server" Interval="1000" OnTick="timer1_tick"></asp:Timer> 

<asp:UpdatePanel id="updPnl" runat="server" UpdateMode="Conditional"> 
    <ContentTemplate> 
     <h2 class="boldStyle">NEW Sale starts in <asp:Label ID="lblTimer" runat="server"></h2></asp:Label></h2> 
    </ContentTemplate> 
    <Triggers> 
     <asp:AsyncPostBackTrigger ControlID="timer1" EventName="tick" /> 
    </Triggers> 
</asp:UpdatePanel> 
+0

それはどこかのどこかで...丸みを帯びたようなものです。私の推測が正しい考えであるかどうかは分かりません。この可能性を確認してください... – Ian

+0

それは妥当と思われるイアン、返信のおかげで。まだそれを修正する方法はまだわかりません..私はプログラミングを学んでいるだけです。私は誰かがオフハンドを知らない限り、私はGoogleにラウンドアップまたはダウンの方法を教えますか?再度、感謝します。 – Eggybread

答えて

0

の代わりにあなたが提供したコードの問題の原因を調べて、別の解決策を直接提案したいと思います。私はあなたがカウントダウンやクロノメーターを表現するために私のTimeMeasurerクラスを使用することをお勧め

、すべてのは、時間の変更について通知するイベントハンドラを使用して簡単な方法で案内されています。

https://github.com/ElektroStudios/ElektroKit/blob/6fbce42a8c59b0a06f679a369d19b7a1282023d0/Solution/v1.2/Elektro.DateAndTime/Types/TimeMeasurer.vb

このクラスを使用して、カウントダウンの例:

Private WithEvents countdown As New TimeMeasurer() 

' Label used to display the remaining time. 
Private lblCountdown As Label = Me.Label1 

Private Shadows Sub Shown() Handles MyBase.Shown 

    ' The time interval for the TimeUpdated event to raise. 
    Me.countdown.UpdateInterval = 100 ' ms 

    ' Run a countdown of 1 minute. 
    Me.countdown.Start(TimeSpan.FromMinutes(1.0R)) 

End Sub 

Private Sub Countdown_TimeUpdated(sender As Object, e As TimeMeasurerUpdatedEventArgs) _ 
Handles countdown.TimeUpdated 

    ' Measure H:M:S:MS 
    Me.lblCountdown.Text = 
     String.Format("{0:00}:{1:00}:{2:00}:{3:000}", 
        e.Remaining.Hours, e.Remaining.Minutes, 
        e.Remaining.Seconds, e.Remaining.Milliseconds) 

    If (e.Elapsed.Subtract(e.Remaining) = e.Goal) Then 
     Me.lblCountdown.Text = "Countdown Done!" 
    End If 

End Sub 

別の例は、ソースコードのドキュメントで見つけることができます。

気軽に使用したり、必要に応じて変更してください。あなたが言及した問題を避けるためにソースコードを調べることができます。

私はこれがあなたを助けることを願っています!

+0

ありがとうございます。私が言うように、私はちょうど学んでいます..それを表示するためにフロントエンドにラベルを追加するだけで、そのコードはそのまま動作しますか?私は何をしているのか全くわからない:-) – Eggybread

+0

@Eggybreadまあ、ASP.Netは本当に管理していませんが、そのイベントハンドラから** e **イベントデータをカウントダウンデータにあなたが望むようにそれを表示するには、私はラベルを使用しました。ソースコードはそのまま動作しますが、唯一の追加の「依存関係」または参照されるメンバはこの列挙体です:https://github.com/ElektroStudios/ElektroKit/blob/6fbce42a8c59b0a06f679a369d19b7a1282023d0/Solution/v1.2/Elektro.DateAndTime/Enums/ TimeMeasurerState.vbとhttps://github.com/ElektroStudios/ElektroKit/blob/6fbce42a8c59b0a06f679a369d19b7a1282023d0/Solution/v1.2/Elektro.DateAndTime/Types/TimeMeasurerUpdatedEventArgs.vb – ElektroStudios

+0

重要なことに気を付けてください:** DateDiff **( ** VisualBasic **名前空間のメンバー)、およびカスタム算術演算の代わりに** TimeSpan **を使用することができます。** TimeSpan **は、そのプロパティに必要なすべての値を公開します。 – ElektroStudios

関連する問題