给定个日期 怎么计算它输入给定年份的第几周 比如在文本框内输入2008-12-24 怎样判断12月24号属于2008年的第几周 并且是星期几呢? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 static void Main(string[] args) { //如何计算当前日期是本月的第几周? //得到当前为这个月的第几天 int day = Convert.ToInt32(DateTime.Now.Day); Console.WriteLine("当前是这个月的第" + day + "天"); //得到是当前年的哪一天 int yearday = Convert.ToInt32(DateTime.Now.DayOfYear); Console.WriteLine(yearday); //得到当前年 int year = Convert.ToInt32(DateTime.Now.Year); Console.WriteLine(year); //得到月份 int month = Convert.ToInt32(DateTime.Now.Month); int totalDays = 0; bool inRn;//是否为闰年 if (year % 4 == 0 && !(year % 100 == 0) || year % 400 == 0) { inRn = true; } else { inRn = false;//平年 } for (int i = 1900; i < year; i++) { /* 判断闰年或平年,并进行天数累加 */ if (i % 4 == 0 && i % 100 != 0 || i % 400 == 0) { // 判断是否为闰年 totalDays = totalDays + 366; // 闰年366天 } else { totalDays = totalDays + 365; // 平年365天 } } Console.WriteLine(totalDays); int days = 0; int beforeDays = 0; for (int i = 1; i <= month; i++) { switch (i) { case 1: case 3: case 5: case 7: case 8: case 10: case 12: days = 31; break; case 2: if (inRn) { days = 29; } else { days = 28; } break; default: days = 30; break; } if (i < month) { beforeDays = beforeDays + days; } } Console.WriteLine("此月份之前的天数" + beforeDays); totalDays = totalDays + beforeDays; // 距离1900年1月1日的天数 int firstDayOfMonth; // 存储当月第一天是星期几:星期日为0 int temp = 1 + totalDays % 7; // 从1900年1月1日推算 if (temp == 7) { // 求当月第一天 firstDayOfMonth = 0; // 周日 } else { firstDayOfMonth = temp; } Console.WriteLine("该月第一天是星期" + firstDayOfMonth); }//还真没想到这么麻烦 public static void main(String args[]) throws Exception{ //2008-12-24 Calendar c = new GregorianCalendar(2008, 12-1, 24); System.out.println(c.getTime()); //属于2008年的第几周 int weekNum = c.get(Calendar.WEEK_OF_YEAR); System.out.println(weekNum); //星期几 int week = c.get(Calendar.DAY_OF_WEEK); System.out.println(week); } 补充一下:int week = c.get(Calendar.DAY_OF_WEEK);week返回值从1-7分别对应的是星期日,一,二,...,六 package practice;import java.util.Calendar;import java.util.Date;public class TryDate{ @SuppressWarnings("deprecation") public static void main(String[]args){ Calendar c=Calendar.getInstance(); c.setTime(new Date(2008-1900,12-1,24 )); System.out.println(c.get(Calendar.YEAR)); System.out.println(c.get(Calendar.WEEK_OF_YEAR)); System.out.print(c.get(Calendar.DAY_OF_WEEK)); } }试试这个: 有没有人不用calendar,date等和日期、时间有关的类库做出这个题的? 谢谢你!fengzhou0920 我去试试 也得谢谢人家一楼啊!这就是所说的土方法,而不是使用GregorianCalendar工具类来实现 今天学习到的一些知识,享元一下 div遮罩层,显示不出来 如何在具有GUI界面的java程序中退出时自动启动浏览器并且访问某一个特定网址? java如何操作Word画图 各位高手,请进来帮忙看一下程序!!谢谢 告急:排序问题 请教一个重载函数的简洁写法 请教 JVM INSTR monitorenter ;是什么意思? 告别几天 我得到了当前使用的字体对象,但是他用的是粗体的(bold),如何把他改为不是粗体的(normal) 关于Java生成html文件以及表格问题?谢谢 为什么我的jtable不能选择一行?
{ //如何计算当前日期是本月的第几周? //得到当前为这个月的第几天
int day = Convert.ToInt32(DateTime.Now.Day);
Console.WriteLine("当前是这个月的第" + day + "天");
//得到是当前年的哪一天
int yearday = Convert.ToInt32(DateTime.Now.DayOfYear);
Console.WriteLine(yearday);
//得到当前年
int year = Convert.ToInt32(DateTime.Now.Year);
Console.WriteLine(year);
//得到月份
int month = Convert.ToInt32(DateTime.Now.Month);
int totalDays = 0;
bool inRn;//是否为闰年
if (year % 4 == 0 && !(year % 100 == 0) || year % 400 == 0)
{
inRn = true;
}
else
{
inRn = false;//平年
}
for (int i = 1900; i < year; i++)
{
/* 判断闰年或平年,并进行天数累加 */
if (i % 4 == 0 && i % 100 != 0 || i % 400 == 0)
{ // 判断是否为闰年
totalDays = totalDays + 366; // 闰年366天
}
else
{
totalDays = totalDays + 365; // 平年365天
}
}
Console.WriteLine(totalDays);
int days = 0;
int beforeDays = 0;
for (int i = 1; i <= month; i++)
{
switch (i)
{
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
days = 31;
break;
case 2:
if (inRn)
{
days = 29;
}
else
{
days = 28;
}
break;
default:
days = 30;
break;
}
if (i < month)
{
beforeDays = beforeDays + days;
} }
Console.WriteLine("此月份之前的天数" + beforeDays);
totalDays = totalDays + beforeDays; // 距离1900年1月1日的天数
int firstDayOfMonth; // 存储当月第一天是星期几:星期日为0
int temp = 1 + totalDays % 7; // 从1900年1月1日推算
if (temp == 7)
{ // 求当月第一天
firstDayOfMonth = 0; // 周日
}
else
{
firstDayOfMonth = temp;
}
Console.WriteLine("该月第一天是星期" + firstDayOfMonth); }
//还真没想到这么麻烦
public static void main(String args[]) throws Exception{
//2008-12-24
Calendar c = new GregorianCalendar(2008, 12-1, 24);
System.out.println(c.getTime());
//属于2008年的第几周
int weekNum = c.get(Calendar.WEEK_OF_YEAR);
System.out.println(weekNum);
//星期几
int week = c.get(Calendar.DAY_OF_WEEK);
System.out.println(week);
}
int week = c.get(Calendar.DAY_OF_WEEK);
week返回值从1-7分别对应的是星期日,一,二,...,六
package practice;import java.util.Calendar;
import java.util.Date;public class TryDate{
@SuppressWarnings("deprecation")
public static void main(String[]args){
Calendar c=Calendar.getInstance();
c.setTime(new Date(2008-1900,12-1,24 ));
System.out.println(c.get(Calendar.YEAR));
System.out.println(c.get(Calendar.WEEK_OF_YEAR));
System.out.print(c.get(Calendar.DAY_OF_WEEK));
}
}
试试这个: