打印条码计算周数和年时,经常需要对跨年周的处理。 比如明年的1月1日和2日,根据工厂的要求,就要求计算在上一年的周数里。下面的程序可以实现此功能,如果1月1号是周四、五、六、日,就算在2011年,否则算在2010年。
private string GetYearAndWeekString()
{
string strWeek;
string strYear;
DateTime dtCurrentTime = DateTime.Now;
DateTime dtFirstDayOfYear = new DateTime(dtCurrentTime.Year, 1, 1); //1月1日
int nYear = dtCurrentTime.Year;
dtCurrentTime = dtCurrentTime.AddHours(-9);
int nWeekNum = 1;
//如果1月1日是周4、5、6、日,//算到上一年
if (dtFirstDayOfYear.DayOfWeek == DayOfWeek.Thursday ||
dtFirstDayOfYear.DayOfWeek == DayOfWeek.Friday ||
dtFirstDayOfYear.DayOfWeek == DayOfWeek.Saturday ||
dtFirstDayOfYear.DayOfWeek == DayOfWeek.Sunday)
{
nWeekNum = 0;
//第一周有几天
int nFisrtWeekDays = 0;
while (dtFirstDayOfYear.DayOfWeek != DayOfWeek.Monday)
{
nFisrtWeekDays++;
dtFirstDayOfYear = dtFirstDayOfYear.AddDays(1);
}
//特殊情况:如果今天在第一周里,上一年周数加1
if (dtCurrentTime.DayOfYear <= nFisrtWeekDays)
{
nYear -= 1;
dtCurrentTime = new DateTime(nYear,12,31);
while (dtCurrentTime.DayOfYear > 1)
{
if (dtCurrentTime.DayOfWeek == DayOfWeek.Monday)
nWeekNum++;
dtCurrentTime = dtCurrentTime.AddDays(-1);
}
strWeek = (nWeekNum + 1).ToString("D2");
strYear = UserHelper.strYearCode[nYear - 2009];
return strWeek + strYear;
}
}
else
{
nWeekNum = 1; //算到当前年
}
//数周数
while (dtCurrentTime.DayOfYear > 1)
{
if (dtCurrentTime.DayOfWeek == DayOfWeek.Monday)
nWeekNum++;
dtCurrentTime = dtCurrentTime.AddDays(-1);
}
strWeek = nWeekNum.ToString("D2");
//year code
strYear = UserHelper.strYearCode[nYear - 2009];
return strWeek + strYear;
}
==================================
//已知某年ryear 自然周rweek,计算该周的第一天对应的日期
SimpleDateFormat temp_DateFormat = new SimpleDateFormat( "yyyy-MM-dd ");
Calendar temp_cal1 = Calendar.getInstance();
//只设置了年和周的field,生成的日历会以当前日期是星期几来设置日历的星期
temp_cal1.set(Calendar.YEAR, Integer.valueOf(this.ryear));
temp_cal1.set(Calendar.WEEK_OF_YEAR, Integer.valueOf(this.rweek));
//减去星期几对应的数字,就会得出该周第一日(即星期天)对应的日期。如星期一对应了2,就减1天
temp_cal1.add(Calendar.DAY_OF_MONTH, -(temp_cal1.get(Calendar.DAY_OF_WEEK))+1);//
System.out.println(temp_DateFormat.format(temp_cal1.getTime()));
分享到:
相关推荐
oracle sql 根据年份、周数取日期
Oracle数据库的周数计算 日期计算,算第n周的第一天及最后一天是几号。 公式...
商品数据挖掘:数据分析库存周数计算、库存优化.doc
选择一个时间自动计算周数,自己写的,有什么意见可以提出来,大家一起交流
因为线上查找过大部分的获取将星期一作为一周开始的周数的思路在特定日期都有一些问题,因项目需要有此功能,经过项目验证,计算准确无误(未发现有任何日期计算错语)。例如: select [dbo].[get_weekNumber]('2021...
怀孕天数周数计算器是一个能够自动计算和显示怀孕天数、预产期和剩余天数的小工具。 为老婆制作的,vb6编制的。 对前一版本稍有改动。
输入年月日,可计算出年积日和GPS周。可区分闰年平年。
Java 语言的Calendar(日历),Date(日期),和DateFormat(日期格式)组成了Java标准的一个基本但是非常重要的部分。...下面这篇文章就给大家介绍了如何利用Java中Calendar计算两个日期之间的天数和周数,下面来一起看看吧。
给定两个日期A和B,格式如:2009-9-09 A所在的周为第1周 计算到B日期时,是第几周
怎么计算Excel2021中当前日期所在的周数.docx
有关日期与周数的相互转换,当日期在星期五以前返回本周,否则返回下一周。一周的开始是星期一
计算某日为星期几,很不错的vc源码,感兴趣的朋友可以看看。
一共有两个方法,获取每个月有几周和获取当前登录时间是属于该月的第几周,测试没问题,已经用到实际项目中运行,文档中有联系方式,望跟各位大神交流
有秒显示,同时有时间更新,可调整,及时显示秒数。通过增加时间响应函数添加时间来调用系统最新,最实时的情况来反应,更新屏幕每秒。
利用C#写的一个计算GPS周的小程序,界面简单,方便新手下载GNSS星历之前日期转换
能够将UTC标准时间转化成为GPS标准时间(包括GPS周数和周内秒数)。(UTC standard time can be transformed into GPS standard time (weeks and weeks, including GPS seconds).)
Labview 日期时间标识间隔计算天数或小时数,指定加长日期计算。 例:比较D1和D2两个不同日期间的天数或小时数, D1基础上加5天的日期,可用于计划控制,定时控制等。
•剔除了每年交易周数小于30(具体可以根据需要调整)的样本,以便有效估计 •字段包含以2012年证监会行业标准,代码中剔除金融保险业,如不需剔除可以将里面注释的代码修改即可 •结果提供交易状态可用筛选:正常...
在实际应用中,日期函数的使用非常广泛,例如计算两个日期间的工作天数、获取当前月份的第一天和最后一天、计算日期所在的周数、弹出选择周的对话框等。 1. 计算两个日期间的工作天数 在实际应用中,我们需要计算...
1、动态设置判断条件 2、动态设置每周的第一天