Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it L'avatar di ciupaz
    Registrato dal
    Dec 2000
    residenza
    Milano
    Messaggi
    848

    [C#] Gestione data

    Ciao a tutti,
    dovrei costruirmi una stringa del tipo YYYYMMDD che contenga l'ultimo giorno del mese precedente alla data odierna.
    Avevo pensato ad una cosa del tipo:

    DateTime oggi = DateTime.Now;
    int mese = oggi.Month;
    string DefaultData = string.Empty;

    if (mese==1 || mese==2 || mese==4 || mese==6 || mese==8 || mese==9 || mese==11)
    {
    DefaultData = oggi.Year + (oggi.Month-1) + "31";
    }
    else if (mese == 3)
    {
    DefaultData = oggi.Year + (oggi.Month - 1) + "28";
    }
    else
    DefaultData = oggi.Year + (oggi.Month - 1) + "30";

    Mi sembra però un po' macchinosa, senza contare che in questo modo non posso gestire gli anni bisestili.
    Qualcuno ha un'idea migliore?
    Grazie

  2. #2
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,463

    Moderazione

    Ho spostato la discussione all'interno del forum dedicato a Visual Basic (VBx, VBA, ...) e ai linguaggi per .NET Framework (VB.NET, C#, ...).

    In futuro, poni in questo forum le domande relative a questi linguaggi.

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  3. #3
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,463
    Per quanto riguarda il tuo problema, penso sia sufficiente determinare il primo giorno del mese corrente, costruendo un valore DateTime al volo usando il valore 1 per il giorno e il mese e l'anno corrente per i campi restanti.

    Detto questo, ti è sufficiente sottrarre un giorno alla data creata per ottenere direttamente l'ultimo del mese precedente.

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  4. #4
    Utente di HTML.it L'avatar di ciupaz
    Registrato dal
    Dec 2000
    residenza
    Milano
    Messaggi
    848
    Stavo provando nel seguente modo:

    DateTime oggi = DateTime.Now;
    DateTime InizioMese = "01" + oggi.Month.ToString() + oggi.Year.ToString();

    ma non gli piace (Cannot implicitly convert type 'string' to 'System.DateTime' )

  5. #5
    Utente di HTML.it L'avatar di ciupaz
    Registrato dal
    Dec 2000
    residenza
    Milano
    Messaggi
    848
    Stavo anche provando questo

    DateTime oggi = DateTime.Now;
    int giorno = oggi.Day;
    string mese = oggi.Month.ToString();

    if (mese.ToString().Length == 1)
    mese = "0" + mese.ToString();

    string InizioMese = oggi.Year.ToString() + mese + "01";
    DateTime DataInizioMese = Convert.ToDateTime(InizioMese);
    DateTime UltimoMesePrecedente = DataInizioMese.AddDays(-1);

    ma non gli piace la riga

    DateTime DataInizioMese = Convert.ToDateTime(InizioMese);


  6. #6
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,463
    Originariamente inviato da ciupaz
    Stavo provando nel seguente modo:
    ma non gli piace (Cannot implicitly convert type 'string' to 'System.DateTime' )
    E ci credo: perché accodi valori numerici a stringhe in quel modo? :master:

    Ecco un esempio pratico di ciò che intendevo:
    codice:
    using System;
    
    public class MyApp
    {
    	public static void Main(string[] args)
    	{
    		DateTime dt = new DateTime(
    			DateTime.Today.Year,
    			DateTime.Today.Month,
    			1);
    		dt = dt.AddDays(-1);
    		Console.WriteLine("L'ultimo giorno del mese precedente è: " + dt.ToString("d"));
    		Console.ReadLine();
    	}
    }
    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.