This topic has been archived. It cannot be replied.
-
工作学习 / 学科技术讨论 / 那位高人能帮我写个C的小程序。。。将YYDDD 的日期,转换成YYMMDD的格式?DDD为一年的第多少天?谢谢大家。。。。:))))
-serenade123(橘子红了);
2008-2-13
{47}
(#4258993@0)
-
I’m not familiar with c. But hope following c# logic is helpful to you.int actualDay = your Actual day of year;
DateTime date = DateTime.Today;
int dayOfYear = date.DayOfYear;
if (actualDay != dayOfYear)
{
double diff = (double)(actualDay - dayOfYear);
date = date.AddDays(diff);
}
-deep_blue(BLUE);
2008-2-13
{225}
(#4259511@0)
-
Thanks deep_blue.....
-serenade123(橘子红了);
2008-2-14
(#4261312@0)
-
容易。bool dayofyeartommdd(uint uiDayofyear, uint* uiMonth, uint* uiDay)
{
static const Days[12] = {31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
int i;
uiMonth = uiDay = 0;
for(i = 0; i < 12; i++)
{
if(uiDayofyear <= Days[i])
{
*uiMonth = i+1;
*uiDay = uiDayofyear;
return true;
}
else
{
uiDayofyear -= Days[i];
}
}
return false;
}
没测有没有错。
-baalinca(穷则安贫乐道富则得色);
2008-2-14
{459}
(#4261291@0)
-
这位兄弟好像没有考虑到。。。平年和润年吧?呵呵:)))多谢你的参与^-^
-serenade123(橘子红了);
2008-2-14
(#4261331@0)
-
真的没有,我还以为只有农历才有。
-baalinca(穷则安贫乐道富则得色);
2008-2-14
(#4261371@0)
-
平年和润年好象有个算法。。。再加入你的程序就应该差不多了。。。其实,我的问题已经解决了,发现我的系统提供这样的功能实现日期转换。。。。但还是希望大家讨论一下,不用任何函数,去实现这样的功能。。。
-serenade123(橘子红了);
2008-2-14
(#4261392@0)
-
如果我没记错的话,有3个原则。1。如果年能被4整除,那年的2月是29天,否则是28天。
2。但是,如果那年能被100整除,算28天。
3。但是,如果那年能被400整除,算29天。
-x888(怀念大家在一起的时光);
2008-2-14
{129}
(#4261508@0)
-
多谢八导。。。。记得上中学还是小学的时候学过,俺早给忘光了。。。。其实,我需要的就是这个算法。。。:)))多谢。。。。给你鞠躬。。。。:)))
-serenade123(橘子红了);
2008-2-14
(#4261572@0)
-
不谢。俺是离散数学里学的,俺曾经离散数学倒背如流,现在就只记住这个了。
-x888(怀念大家在一起的时光);
2008-2-14
(#4261671@0)
-
离散数学里教过这个?没印象。反正俺是小学自然常识课里学的。:)
-bdbs(不多不少);
2008-2-14
(#4262262@0)
-
correct
-ccie18614(加拿大枫叶);
2008-3-4
(#4308253@0)
-
润年的判断方法
-walacato(一天到晚游泳的鱼);
2008-2-14
(#4262570@0)
-
[c语言] c语言课程设计--万年历
-tjhong(我检讨);
2008-2-14
(#4261350@0)
-
感觉这个听有用,,,记下。。。:)))谢谢。。。
-serenade123(橘子红了);
2008-2-14
(#4261394@0)
-
你用的什么C?这个应该有基本函数可以直接调用的。查查手册看。不要re-invent the wheel。
-bdbs(不多不少);
2008-2-14
(#4261452@0)
-
Thanks,,,,:)))
-serenade123(橘子红了);
2008-2-14
(#4261594@0)
-
用mktime (year = 2000+yy-1900, mday=ddd),就行了。至于sscanf,gmtime,strftime不用我写了吧。
-niu1986(只吃草的牛);
2008-2-14
(#4261502@0)
-
你的方法应该不错。。。。。谢谢。。。。
-serenade123(橘子红了);
2008-2-14
(#4261590@0)