Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz
  • 0

DateTime czas od początku tygodnia


Azar

Pytanie

Opublikowano

Witam,

Chciałbym pobrać czas najlepiej w ilości minut, które upłynęły od początku obecnego tygodnia, w jaki sposób najlepiej to ogarnąć? :)

Obraz (19).png

2 odpowiedzi na to pytanie

Rekomendowane odpowiedzi

Opublikowano

Możesz użyć DateTime:

DateTime data = DateTime.Now;
string day = data.DayOfWeek.ToString();

w łańcuchu "day" będziesz mieć angielską nazwę obecnego dnia tygodnia, później możesz zrobić jakiegoś switcha obliczającego czas poprzednich dni tygodnia, a na koniec dodać czas obecnego dnia.

Chcesz zacząć grać w LOL'a? Szukasz fajnej ekipy? Również zapraszam na PW:D

 

Opublikowano
Dnia 9.09.2017 o 14:22, Azar napisał:

Witam,

Chciałbym pobrać czas najlepiej w ilości minut, które upłynęły od początku obecnego tygodnia, w jaki sposób najlepiej to ogarnąć? :)

        static void Main(string[] args) {
            DateTime lastMonday = getLastDayOfWeek(DayOfWeek.Thursday);
            DateTime today = DateTime.Now;
            var differenceInMinutes = (today - lastMonday).TotalMinutes;
        }

        private static DateTime getLastDayOfWeek(DayOfWeek day) {
            DateTime dt = DateTime.Today;
            while (dt.DayOfWeek != day) dt = dt.AddDays(-1);
            return dt;
        }

 

22 godziny temu, MedykMatyk napisał:

Możesz użyć DateTime:


DateTime data = DateTime.Now;
string day = data.DayOfWeek.ToString();

w łańcuchu "day" będziesz mieć angielską nazwę obecnego dnia tygodnia, później możesz zrobić jakiegoś switcha obliczającego czas poprzednich dni tygodnia, a na koniec dodać czas obecnego dnia.

Ale po co zapisywać to do stringa?

Z jakiegoś powodu nie mogę edytować swojego posta. Próbowałem edytować minutę po napisaniu i dostawałem informację, że minęło za dużo czasu od napisania. Heh..

W ramach prostestu dubluję.

Oczywiście w poście wyżej powinno być: 

Cytat

DateTime lastMonday = getLastDayOfWeek(DayOfWeek.Monday);

Wpadłem jednak na inne, krótsze rozwiązanie:

DateTime startOfWeek = DateTime.Today.AddDays((int)DateTime.Today.DayOfWeek * -1 + 1);
var differenceInMinutes = (DateTime.Now - startOfWeek).TotalMinutes;

2 linijki, a po co więcej? :)

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...