Hi merictokatlio...,
You need to use Ajax timer controlwhich will check and display the timer.
Refer below sample code and change as per your need.
HTML
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<asp:Label ID="lblMessage" runat="server" />
<asp:Timer ID="Timer1" runat="server" OnTick="TimerTick" Interval="1000" />
</ContentTemplate>
</asp:UpdatePanel>
Code
C#
private DataTable GetData()
{
DataTable dt = new DataTable();
dt.Columns.AddRange(new DataColumn[3] {
new DataColumn("Id"), new DataColumn("Lesson"), new DataColumn("StartTime") });
dt.Rows.Add(1, "Matematik", "16:45:00");
return dt;
}
protected void TimerTick(object sender, EventArgs e)
{
lblMessage.Text = "";
DataTable dt = GetData();
DateTime currentDateTime = DateTime.Now;
foreach (DataRow dr in dt.Rows)
{
DateTime startTime = Convert.ToDateTime(dr["StartTime"]);
double diff = startTime.Subtract(currentDateTime).TotalSeconds;
if (diff < 300 && diff > 60)
{
lblMessage.Text = string.Format("{0} lession to be start in {1} minutes.",
dr["Lesson"].ToString(), Math.Round(diff / 60, 0));
}
else if (diff < 60 && diff > 0)
{
lblMessage.Text = string.Format("{0} lession to be start in {1} seconds.",
dr["Lesson"].ToString(), Math.Round(diff));
}
else if (diff == 0)
{
lblMessage.Text = string.Format("{0} lession started.", dr["Lesson"].ToString());
}
}
}
VB.Net
Private Function GetData() As DataTable
Dim dt As DataTable = New DataTable()
dt.Columns.AddRange(New DataColumn(2) {
New DataColumn("Id"), New DataColumn("Lesson"), New DataColumn("StartTime")})
dt.Rows.Add(1, "Matematik", "16:45:00")
Return dt
End Function
Protected Sub TimerTick(ByVal sender As Object, ByVal e As EventArgs)
lblMessage.Text = ""
Dim dt As DataTable = GetData()
Dim currentDateTime As DateTime = DateTime.Now
For Each dr As DataRow In dt.Rows
Dim startTime As DateTime = Convert.ToDateTime(dr("StartTime"))
Dim diff As Double = startTime.Subtract(currentDateTime).TotalSeconds
If diff < 300 AndAlso diff > 60 Then
lblMessage.Text = String.Format("{0} lession to be start in {1} minutes.",
dr("Lesson").ToString(), Math.Round(diff / 60, 0))
ElseIf diff < 60 AndAlso diff > 0 Then
lblMessage.Text = String.Format("{0} lession to be start in {1} seconds.",
dr("Lesson").ToString(), Math.Round(diff))
ElseIf diff = 0 Then
lblMessage.Text = String.Format("{0} lession started.", dr("Lesson").ToString())
End If
Next
End Sub
Note: Get the GetData data from database.