Odliczanie czasu, odliczanie do konkretnej daty.

0
 
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace Timer
{
    public partial class Form1 : Form
    {
        private DateTime deadline;
        int months;
        int days;
        int hours;
        int resultDays;
        int resultHours;
 
        public Form1()
        {
            InitializeComponent();
            deadline = new DateTime(2012,8,28,0,0,0);
            label3.Text = DateTime.Now.Date.ToShortDateString();
            
        }

        private void buttonCheck_Click(object sender, EventArgs e)
        {
            months = deadline.Month - DateTime.Now.Month;
            days = deadline.Day - DateTime.Now.Day;
            hours = deadline.Day - DateTime.Now.Hour;

            label4.Text = (months+ " miesiące " + days + " dni " + hours+" godzin ").ToString();
        }
    }
}

Pytanie jak teraz poprawnie zamienić miesiące które pozostały na dni?

1

Odejmij całą datę od drugiej, a nie poszczególne składowe. Dostaniesz obiekt typu TimeSpan, który ma właściwość TotalDays.

0

Dzięki wielkie. A jest jakiś sposób aby pomijać niedzielę? na przykładz lipiec i sierpień mają po 31 dni w tym 4 niedziele czyli zamiast 62 dni będzie 54 dni czy trzeba samemu to jakoś wymyślić?

1

Samemu. Podpowiedź: każdy tydzień ma jedną niedzielę ;)

0

Czy tak będzie dobrze?

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Globalization;

namespace Timer
{
    public partial class Form1 : Form
    {
        private DateTime deadline;
        private TimeSpan tSresult;
        int months;
        int days;
        int hours;
        int numberOfSunday;
        int withoutSunday;
 
        public Form1()
        {
            InitializeComponent();
            deadline = new DateTime(2012,8,28);
            tSresult = new TimeSpan();
            label3.Text = DateTime.Now.Date.ToShortDateString();
         
            
        }

        private void buttonCheck_Click(object sender, EventArgs e)
        {
            months = deadline.Month - DateTime.Now.Month;
            days = deadline.Day - DateTime.Now.Day;
            hours = deadline.Day - DateTime.Now.Hour;
            tSresult = deadline.Date - DateTime.Now.Date;

            numberOfSunday= int.Parse((tSresult.TotalDays).ToString()) / 7; //liczy ile jest pełnych tygodni, w każdym tygodniu jedna niedziela
            withoutSunday = int.Parse((tSresult.TotalDays).ToString())- numberOfSunday;

            label4.Text = (months+ " miesiące " + days + " dni " + hours+" godzin ").ToString();
            label7.Text = withoutSunday.ToString();
            label8.Text = tSresult.TotalHours.ToString();
        }
    }
}


 
1

int.Parse((tSresult.TotalDays).ToString())
Wygrałeś cukierka.

Wciąż nie wziąłeś pod uwagę co się stanie jak niedziela nastąpi w niepełnym tygodniu (np. liczysz różnicę czasu od piątku do wtorku; tydzień niepełny, ale niedziela jest).

1 użytkowników online, w tym zalogowanych: 0, gości: 1