Avatar billede mandenmedplanen Nybegynder
29. februar 2008 - 22:16 Der er 14 kommentarer og
1 løsning

Nedtæller

JEg mangler en nedtæller til en specifik dato der opdateres automatisk hvert sekund...

den skal altså vise dage, timer, minutter og sekunder til en given dato fra nu af... JEg har før arbejdet med DateTime now, så hvis det kan være med denne vil det være et plus, jeg ved ikke hvordan jeg skal gøre det...
Avatar billede dr_chaos Nybegynder
29. februar 2008 - 22:19 #1
lav en datetime som indeholder den tid som er skæringsdato.
Så kan du bare gøre sådan her:
TargetTime-DateTime.Now

Du kan lave en timer med et interval på et sekund som kan opdaterer et label
Avatar billede mandenmedplanen Nybegynder
29. februar 2008 - 22:34 #2
nu er jeg ikke så skarp til det her - har du evt noget kode til det ?
Avatar billede kalp Novice
29. februar 2008 - 22:38 #3
class Program
    {
        private readonly DateTime interestingDate = DateTime.Parse("2008-03-03");
        static void Main(string[] args)
        {
            Program program = new Program();
            program.start();
        }

        public void start()
        {
            System.Timers.Timer time = new System.Timers.Timer();
            time.Interval = 1000;
            time.Elapsed += new System.Timers.ElapsedEventHandler(time_Elapsed);
            time.Start();
            while (time.Enabled) ;
        }

        void time_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
        {
            Console.Clear();
            Console.Write(interestingDate.Subtract(DateTime.Now));
        }
    }


du kan så formattere output så det står pænere.
Avatar billede dr_chaos Nybegynder
29. februar 2008 - 22:47 #4
Tja nu har kalp stortset lavet den kode som jeg lagde op til via mit første indlæg.
Avatar billede kalp Novice
29. februar 2008 - 22:49 #5
void time_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
        {
            Console.Clear();
            TimeSpan timeLeft = interestingDate - DateTime.Now;
            string dateFormatted = string.Format("{0} dage. {1} minutter. {2} sekunder.", timeLeft.Days.ToString(), timeLeft.Minutes.ToString(), timeLeft.Seconds.ToString());
            Console.Write(dateFormatted);
        }


formatteret udskrivning.
Avatar billede mandenmedplanen Nybegynder
29. februar 2008 - 23:42 #6
jeg kan ikke få det til at virke...?

Jeg sætter det ind i min codebehind, oprettet et label og prøver at skrive ud i det med

Label1.Test = dateFormatted;

for den console.write(dateFormattet) viser ingenting på min min skærm....
Avatar billede kalp Novice
01. marts 2008 - 00:15 #7
Label1.Test ?
prøv med
Label1.Text

og ellers må du poste noget mere for der er ikke fejl at se i det du har posted ellers.
Avatar billede mandenmedplanen Nybegynder
01. marts 2008 - 00:26 #8
jah.... det er også .Text jeg mente... MEn jeg postede ovenstående kode ind i min codebehind, oprettede en label med id="Label1" og ville skrive dateFormatted ud i den... kan det ikke lade sig gøre sådan ?
Avatar billede kalp Novice
01. marts 2008 - 00:29 #9
jo men du har nok en fejl i den kode jeg ikke kan se
Avatar billede mandenmedplanen Nybegynder
01. marts 2008 - 00:37 #10
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

public partial class Default2 : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
   
    }
    class Program
    {
        private readonly DateTime interestingDate = DateTime.Parse("2008-03-03");
        static void Main(string[] args)
        {
            Program program = new Program();
            program.start();
        }

        public void start()
        {
            System.Timers.Timer time = new System.Timers.Timer();
            time.Interval = 1000;
            time.Elapsed += new System.Timers.ElapsedEventHandler(time_Elapsed);
            time.Start();
            while (time.Enabled) ;
        }

        void time_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
        {
            Console.Clear();
            TimeSpan timeLeft = interestingDate - DateTime.Now;
            string dateFormatted = string.Format("{0} dage. {1} minutter. {2} sekunder.", timeLeft.Days.ToString(), timeLeft.Minutes.ToString(), timeLeft.Seconds.ToString());
            //Console.Write(dateFormatted);
            Label1.Text = dateFormatted;
        }
    }
}
Avatar billede kalp Novice
01. marts 2008 - 01:29 #11
det er også ganske forkert.

men hvis du skal have det i en form skal det håndteres anderledes pga. threads.
hent koden her
http://kalp.dk/countdown.zip

jeg har lavet den da det er nemmest.
Avatar billede mandenmedplanen Nybegynder
01. marts 2008 - 11:04 #12
Mange tak for det - det ser avanceret ud - nu har jeg aldrig beskæfitiget mig med denne type af forms - hvordan tilføjer jeg den til mit eget projekt så ?
Avatar billede kalp Novice
01. marts 2008 - 13:15 #13
opret en form med samme navn i dit projekt og kopir koden der over
Avatar billede mandenmedplanen Nybegynder
01. marts 2008 - 13:30 #14
det virker sørme - mange tak for din super hjælp og gode tålmodighed ;-)
Avatar billede kalp Novice
01. marts 2008 - 13:57 #15
selv tak:)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester