<script Language="c#" runat="server">
void Page_Load()
{
DateTime date = DateTime.Now;
dateToday.Text = " " + date.ToString("d");
DayOfWeek day = DateTime.Now.DayOfWeek;
dayToday.Text = " " + day.ToString();
if ((dayToday == DayOfWeek.Saturday) && (dayToday == DayOfWeek.Sunday))
{
Console.WriteLine("This is a weekend");
}
}
</script>
En utilisant dateTime, j'essaie de vérifier si la date actuelle est un jour de semaine ou un week-end, puis j'aimerais imprimer la réponse à l'utilisateur. Actuellement, je reçois une erreur d'exécution. Si je supprime mon instruction if, les premiers éléments (la date du jour et le jour de la semaine) s’impriment correctement.
Vous avez écrit une variable incorrecte dans l'instruction if suivante:
if ((dayToday == DayOfWeek.Saturday) || (dayToday == DayOfWeek.Sunday))
{
Console.WriteLine("This is a weekend");
}
au lieu de dayToday, vous devez utiliser day varable dans la condition.
UPDATE: Vous avez également fait une erreur de condition. Il doit y avoir or
au lieu de and
.
Vous comparez votre étiquette ASP.NET dayToday
à un élément d’énumération de DayOfWeek
qui échoue bien sûr.
Vous souhaitez probablement remplacer dayToday
par day
dans votre instruction if
, c’est-à-dire de
if ((dayToday == DayOfWeek.Saturday) && (dayToday == DayOfWeek.Sunday))
à
if ((day == DayOfWeek.Saturday) && (day == DayOfWeek.Sunday))
De plus, vous voudrez probablement aussi remplacer le logique 'et' (&&
) par un 'ou' logique (||
) pour finalement
if ((day == DayOfWeek.Saturday) || (day == DayOfWeek.Sunday))
if ((day >= DayOfWeek.Monday) && (day<= DayOfWeek.Friday))
{
// action
}
Vous recevez une erreur car vous comparez une énumération avec une chaîne.
// dayToday is a string
// DayOfWeek.Saturday is an enum
if ((dayToday == DayOfWeek.Saturday) && (dayToday == DayOfWeek.Sunday))
Utilisez DayOfWeek.Saturday.ToString()
pour comparer à une chaîne. Vous voudrez également ne pas patiner la chaîne dayToday
. Vous pouvez également utiliser la variable day
pour la comparer à une énumération.
https://dotnetfiddle.net/gUGJ0J
using System;
public class Program
{
public static void Main()
{
DateTime date = DateTime.Now;
string dateToday = date.ToString("d");
DayOfWeek day = DateTime.Now.DayOfWeek;
string dayToday = day.ToString();
// compare enums
if ((day == DayOfWeek.Saturday) || (day == DayOfWeek.Sunday))
{
Console.WriteLine(dateToday + " is a weekend");
}
else
{
Console.WriteLine(dateToday + " is not a weekend");
}
// compare strings
if ((dayToday == DayOfWeek.Saturday.ToString()) || (dayToday == DayOfWeek.Sunday.ToString()))
{
Console.WriteLine(dateToday + " is a weekend");
}
else
{
Console.WriteLine(dateToday + " is not a weekend");
}
}
}
Vous devez placer vos contrôles asp dans une balise de formulaire avec runat = "server".
<body>
<form id="frm" runat="server">
<p>
Today's date is: <asp:Label ID="dateToday" runat="server" />
<br/>
The day of the week is: <asp:Label ID="dayToday" runat="server" />
<br/>
</form>
</body>
La signature de la méthode Page_Load
est incorrecte dans votre code. Vous devez également utiliser Response.Write
pour les sites Web asp au lieu de Console.Writeline
. Il devrait y avoir OR (||) au lieu de AND (&&) lorsque vous vérifiez le jour de la semaine.
<script language="c#" runat="server">
protected void Page_Load(object sender, EventArgs e)
{
DateTime date = DateTime.Now;
dateToday.Text = " " + date.ToString("d");
DayOfWeek day = DateTime.Now.DayOfWeek;
dayToday.Text = " " + day.ToString();
if ((dayToday.Text == DayOfWeek.Saturday.ToString()) || (dayToday.Text == DayOfWeek.Sunday.ToString()))
{
Response.Write("This is a weekend");
}
}
</script>