|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Member
Iscritto dal: Jul 2009
Messaggi: 268
|
[C#] Aiuto con un programma
Ragazzi, devo creare un algoritmo che dati in input la data e il mese calcoli quanti giorni sono passati dall' inizio dell' anno. Io l' ho creato così ma non mi funzione. Potete dirmi dove ho sbagliato o darmi consigli?
Codice:
using System;
class data
{
static void Main()
{
int giorno, mese, giorni;
Console.WriteLine("Inserisci giorno e mese della data odierna in forma numerica");
giorno = Convert.ToInt32(Console.ReadLine());
mese = Convert.ToInt32(Console.ReadLine());
if (mese == 1)
giorni = giorno;
else
if (mese == 2)
giorni = giorno + 31;
else
if (mese == 3)
giorni = giorno + 59;
else
if (mese == 4)
giorni = giorno + 90;
else
if (mese == 5)
giorni = giorno + 120;
else
if (mese == 4)
giorni = giorno + 90;
else
if (mese == 6)
giorni = giorno + 151;
else
if (mese == 7)
giorni = giorno + 181;
else
if (mese == 8)
giorni = giorno + 212;
else
if (mese == 9)
giorni = giorno + 243;
else
if (mese == 10)
giorni = giorno + 273;
else
if (mese == 11)
giorni = giorno + 304;
else
if (mese == 12)
giorni = giorno + 334;
else
Console.WriteLine("La data inserita non è corretta, riprova");
Console.ReadLine();
Console.WriteLine("Dall' inizio dell' anno è/sono passato/i = {0} giorno/i", giorni);
Console.ReadLine();
}
}
|
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Aug 1999
Città: Como
Messaggi: 1509
|
Oddio, ma perchè complicarsi così la vita?
usa datetime: datetime dt1 = new datetime(anno, mese, giorno); datetime dt2 = new datetime(anno, 1, 1); timespan dtdiff = dt1-dt2 string giorni = dtdiff.Days.ToString(); Console.WriteLine("Dall' inizio dell' anno è/sono passato/i = {0} giorno/i", giorni); Console.ReadLine(); più o meno così dovrebbe funzionare (di sicuro c'è da sistemare il case dei tipi che non sono stato a controllare) |
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Dec 2004
Messaggi: 3210
|
L'errore è non guardare prima se esistono Metodi già pronti :
Codice:
DateTime data = new DateTime(anno, mese, giorno); int giorni = data.DayOfYear; Codice:
int giorni = data.DayOfYear - 1; |
|
|
|
|
|
#4 |
|
Member
Iscritto dal: Jul 2009
Messaggi: 268
|
Si, scusate mi sono dimenticato di specificarlo, sono alle prime armi con questo linguaggio quindi non avreste delle soluzioni da propormi utilizzando l' if come ho fatto io?
|
|
|
|
|
|
#5 | |
|
Senior Member
Iscritto dal: Mar 2005
Città: Morimondo city
Messaggi: 5491
|
Quote:
__________________
Khelidan |
|
|
|
|
|
|
#6 | |
|
Senior Member
Iscritto dal: Dec 2004
Messaggi: 3210
|
Quote:
Se proprio vuoi perseverare diabolicamente, almeno usa uno switch. Mica sarà uno di quei famosi "esercizi scolastici" in cui bisogna reinventare la ruota, spero... |
|
|
|
|
|
|
#7 | |
|
Senior Member
Iscritto dal: Feb 2003
Città: Stockholm (SE)
Messaggi: 1343
|
Quote:
|
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 10:47.



















