所以我正在使用Visual Studio 2017,并使用.Net表单。我正在尝试制作一个时钟,以下列格式显示时间 一周中的某年的某年的几周,每秒钟7小时分
我很好地将变量设置为年,小时,分钟和秒,因为这是基本的事情。但是,我找不到一种方法来获取一年中的星期几和7月的某几天。
因此,我已经尝试使用简单的数学365-DateTime.now.day并将其除以7来计算一周的时间了。这太乱了,我得到了错误日志(duh)
我在一周中的每一天都做同样的事情,但是使用上面的星期公式作为开始。
我知道我没有做太多尝试,但是我对C#还是很陌生。它是我为学习而制作的应用程序。我知道datetime部分中缺少代码。
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace WindowsFormsApp3
{
public partial class Form1 : Form
{
Timer t = new Timer();
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
//timer interval
t.Interval = 1000; //in milliseconds
t.Tick += new EventHandler(this.t_tick);
//start timer when form loads
t.Start(); //this will use t_tick() method
}
//timer interval
private void t_tick(object sender,EventArgs e)
{
//get current time
int yy = DateTime.Now.year;
int ww = DateTime.Now.//missing code,get the week of the current year??
int wd = DateTime.Now.DayOfWeek; //on 7 days??
int hh = DateTime.Now.Hour;
int mm = DateTime.Now.Minute;
int ss = DateTime.Now.Second;
//time
String time = "";
//padding leading
if(hh < 10)
{
time += "0" + hh;
}
else
{
time += hh;
}
time += ":";
if (mm < 10)
{
time += "0" + mm;
}
else
{
time += mm;
}
time += ":";
if (ss < 10)
{
time += "0" + ss;
}
else
{
time += ss;
}
//update label
label1.Text = time;
}
}
}
因此,预期结果很简单。我想如上所述输出日期和时间。由于我的代码不完整,实际结果什么也没有。
注意:我知道以后需要更改“ hh <10”的内容。要测试它是否按照我的想法工作,这是一个基本时钟代码。
答案 0 :(得分:0)
System.Globalization中的Calendar class应该可以满足您的需求。
此外,要返回星期几的数字表示,您可以将DayOfWeek强制转换为int。
这是您需要填写两个缺失变量的代码:
Calendar cal = CultureInfo.InvariantCulture.Calendar;
int ww = cal.GetWeekOfYear(DateTime.Now, CalendarWeekRule.FirstDay, DayOfWeek.Sunday);
int wd = (int)DateTime.Now.DayOfWeek;
确保还添加了using语句:
using System.Globalization;