Hejto.pl
Dodaj post

Wpisz coś do wyszukania (minimum 2 znaki)

Wpis użytkownika DerMirker w Nauka programowania

Autorytet

w Nauka programowania

0piorunów

Cześć, jak napisać w C# kod, który zwróci mi plik z datą dzień wcześniej?

Poniższy kod dla dzisiaj działa:

System.IO.Directory.GetFiles("ZmiennaFolderu","*.xlsx").OrderByDescending(Function(d) New FileInfo(d).CreationTime).ToList(0)

Chciałem zrobić coś analogicznego dla wczoraj i nie działa:

System.IO.Directory.GetFiles("ZmiennaFolderu","*.xlsx").OrderByDescending(Function(d) New FileInfo(d).CreationTime.AddDays(-1)).ToList(0)

Komentarze (9)

Gruba ryba0piorunów

using System;

class Program
{
static void Main()
{
DateTime dzisiaj = DateTime.Now;
DateTime wczoraj = dzisiaj.AddDays(-1);

string nazwaPliku = $"plik_{wczoraj.ToString("yyyyMMdd")}.txt";

Console.WriteLine(nazwaPliku);
}
}

Autorytet1piorunów

@DerMirker rzeczywiście jeśli operuje na kalendarzu to pewnie zadziała, ale niech lepiej sprawdzi xD

Autorytet1piorunów

@Fox tak jak zauważył @def, kod odejmuje datę, a nie liczbę. Chyba że czegoś nie rozumiem.

Gruba ryba1piorunów

Nie znam c# ale to operuje na dacie, a nie dniu miesiaca, wiec wyglada ok

Autorytet0piorunów

@DerMirker czy ten kod dokonuje odjęcia o 1? Wiesz jaką datę ci zwróci jak będziesz miał 1 dzień miesiąca? 0.
Nie możesz po prostu generować tego pliku z aktualną datą i jej użyć jutro?

Autorytet1piorunów

@Spider zrobił to. Kod działa, jestem zdumiony :grimacing:

System.IO.Directory.GetFiles(ZmiennaFolderu, "*.xlsx").Where(Function(d) New FileInfo(d).CreationTime.Date = Date.Today.AddDays(-1)).OrderByDescending(Function(d) New FileInfo(d).CreationTime).FirstOrDefault()

Autorytet0piorunów

@Spider dzięki, ale potrzebuję to mieć w jednej linijce