『壹』 求C語言程序,我輸入日期(年月日),然後輸入前後加減多少天,得出那個日期是多少
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
main()
{
int year,month,day;
int leapyear=0;//閏年時使用
int daytime=0;
int sum;
static int month_date[12]={31,28,31,30,31,30,31,31,30,31,30,31};
printf("請輸入日期:(例如:2010 5 27)");
scanf("%d%d%d",&year,&month,&day);
if(year<=0||month>12||month<1)//判斷輸入是否正確
{
printf("Error!\n");
getch();
exit(0);
}
if(year%400==0||(year%4==0&&year%100!=0))//判斷是否為閏年
leapyear=1;//是就加1
if(month==2)//判斷日是否輸入正確,2月是特殊的因為分閏年和平年
{ if((month_date[month-1]+leapyear)<day||day<=0)
{
printf("Error!\n");
getch();
exit(0);
}
}
if(month!=2)//當輸入不是2月時,判斷輸入
{
if(month_date[month-1]<day||day<=0)
{
printf("Error!\n");
getch();
exit(0);
}
}
printf("\n請輸入天數:");
scanf("%d",&daytime);//輸入第N天後
if(daytime<0)
{
printf("Error!\n");
getch();
exit(0);
}
sum=daytime+day;//當前日期與N天相加
do
{
if(month==2)//判斷當月是不是二月份
month_date[month-1]+=leapyear;
if(sum>month_date[month-1])
{
sum-=month_date[month-1];
month++;//超過當月天數,加一個月
if(month==13)//當月份超過12月時,重新返到1月
{
year++;//加一年
if(year%400==0||(year%4==0&&year%100!=0))//判斷加一年後是不是閏年
leapyear=1;
else
leapyear=0;//不是閏年則為0
month=1;//因為12月的下一個月是1月
}
}
}while(sum>month_date[month-1]);//當加起來的天數少於當月的天數就停止循環
day=sum;
printf("\n第%d天後是%d %d %d",daytime,year,month,day);//輸出
getch();
}
『貳』 C語言程序設計:輸入一個日期(含年、月、日),編程序輸出該日期是該年度中的第
y 年 m 月 d 日,是第幾天 days 啊?
計算方法:
days = mon[1] + mon[2] + .... + mon[m-1] + d;
mon[i] 是 第 i 個月的天數;同時要注意,mon[2] 閏年29,否則28;
給出代碼吧,雖然這樣對你其實么有什麼好處、
#include<stdio.h>
int main()
{
int mon[13] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30,31};
int y, m, d, days;
int leap, i;
scanf("%d %d %d", &y, &m, &d);
for(i = 1, days = 0; i < m; i++)
days += mon[i];
leap = (y % 4 == 0 && y % 100 || y % 400 == 0) ? 1 : 0;
if(m > 2)
days++;
printf("days = %d\n", days);
}
自己讀,自己寫,經常網路,不好~~~
剛才有個單詞打錯了,sorry、、~~
『叄』 excel表在日期的提取年和月份做合並計算求合,不用添加輔助列
Excel在日期的提取年和月份做合並計算求和,不用添加輔助列,可以使用SUMPRODUCT函數和YEAR 函數和MONTH函數,輸入公式,並向下填充,如下:
=SUMPRODUCT((YEAR($A$1:$A$8)=YEAR(A11))*(MONTH($A$1:$A$8)=MONTH(A11))*$B$1:$B$8)
公式及效果圖
注:表中數據都是日期格式,無文本格式,因此用年和月份函數來計算求得。
『肆』 c#編程語言中用於表達日期時間的結構的名字
獲取日期型欄位中的年月日字元的具體代碼如下:
string date="2010-5-11";
DateTime dt=DateTime.Parse(date);
string yy=dt.Year.ToString();
string mm=dt.Month.ToString();
string dd=dt.Day.ToString();
上述代碼中yy為獲取得到的年份2010,mm為獲取得到的月份5,dd為獲取得到的日子11。
基本運算符
C使用運算符(operator)來代表算術運算。例如,+運算符可以使它兩側的值加在一起。如果您覺得術語「運算符」聽起來比較奇怪,那麼請您記住那些東西總得有個名稱。
與其被稱之為「那些東西」或「數學符號」,被稱之為「運算符」似乎看起來更專業一些。
賦值運算符
在C里,符號=不表示「相等」,而是一個賦值運算符。下面的語句是將2014賦給num的變數。
num=2014;
也就是說,符號=的左邊是一個變數名,右邊是賦給該變數的值。符號=被稱為賦值運算符(assignment operator)。再次強調不要把這行代碼讀做「num等於2014」,而應該讀為「將值2014賦給變數num」。賦值運算符的動作是從右到左。
或許變數的名字和變數值之間的區別看起來微乎其微,但是請考慮下面的常量計算機語句:
i=i+1;
在數學上,該語句沒有任何意義。如果您給一個有限的數加1,結果不會「等於」這個數本身。它意味著「找到名字為i的變數的值:然後對那個值加1,然後將這個新值賦給名字為i的變數」。
以上內容參考:網路——c語言
『伍』 運用Java程序設計語言,設計一個日期計算類DateCal
/**
* 日歷類 作者:lyj
* @author Administrator
*
*/
public class MyCalender {
private int year,month,day;//年月日
private static final int BIG_MONTH=31,SMALL_MONTH=30,LEAPYEAR=29,PINGYEAR=28;
private static final int ONE=1,TWELEVE=12;
/**
* 構造函數
* @param year 年
* @param month 月
* @param day 日
*/
public MyCalender(int year,int month,int day){
this.year=year;
this.month=month;
this.day=day;
}
/**
* 判斷日歷是否合法
* @param my 日歷
* @return 1 合法 0不合法
*/
public int isValid(MyCalender myCal){
//年份不能小於1
//月份不能大於12或者小於1
//日期不能大於31或者小於1
if((myCal.year<ONE) ||(myCal.month>TWELEVE||myCal.month<ONE)||
myCal.day<ONE||myCal.day>BIG_MONTH)
return 0;
return 1;
};
/**
* 返回日歷的前一天
* @param d
* @return
* @throws Exception
*/
public MyCalender previousDate(MyCalender myDay) throws Exception{
if(isValid(myDay)==0||day>howDay()){
throw new Exception("日歷不合法!");
}
else if(day-1==0){
myDay.setMonth(month-1);//月份往前減一
myDay.setDay(howDay());
if(month==0){
myDay.setYear(year-1);
myDay.setMonth(12);
myDay.setDay(howDay());
}
}
else myDay.setDay(day-1);
return myDay;
};
/**
* 返回日歷的後一天
* @param d
* @return
* @throws Exception
*/
public MyCalender nextDate(MyCalender myDay) throws Exception{
if(isValid(myDay)==0||day>howDay()){
throw new Exception("日歷不合法!");
}
//如果後一天大於當前日期的當月天數那麼月份+1
else if(day+1>howDay()){
myDay.setDay(1);//日期為1
myDay.setMonth(month+1);
//如果月份大於12的話就年份加1
if(month>12){
myDay.setMonth(1);//月份設置為1
myDay.setYear(year+1);
}
}
else
myDay.setDay(day+1);
return myDay;
};
/**
*獲得當前月份有多少天
* @param year
* @return
*/
private int howDay(){
switch (month) {
case 1:case 3:case 5:case 7 :case 8:case 10:case 12:
return BIG_MONTH;
case 2:
if(isLeapyear())
return LEAPYEAR;
return PINGYEAR;
}
return SMALL_MONTH;
}
/**
* 判斷是否是平年
* @return
*/
protected boolean isLeapyear(){
return ((year%4==0 && year%100!=0)||(year%400==0));
}
@Override
public String toString() {
return year+"年"+month+"月"+day+"日";
};
/************************set********************************/
public void setYear(int year) {
this.year = year;
}
public void setDay(int day) {
this.day = day;
}
public void setMonth(int month) {
this.month = month;
}
/*************************set***************************************
//測試入口
* @throws Exception */
public static void main(String[] args) throws Exception {
MyCalender my=new MyCalender(2012,11,29);
System.out.println(my.howDay());
System.out.println(my.previousDate(my));
System.out.println(my.nextDate(my));
System.out.println(my.nextDate(my));
System.out.println(my.nextDate(my));
System.out.println(my.nextDate(my));
}
}
樓主你好 目前只實現了你需要的東西
還有就是我新創了一個群 不介意的話來交流 261957883
『陸』 EXCEL怎麼把年、日期和時間合並在一起
用&連接起來,=A1&"-"&B1&" "&C1
第三列是時間格式,所以必須轉化為希望的格式後再&
應該是這樣的
,=A1&"-"&B1&" "&TEXT(C1,"H:MM")
『柒』 c語言編程,有提示的
要把一個年月日表示成一個數,一般是10000x年+100x月+日
#include <stdio.h>
int Rc(int s, int y) {
int c = 0;
for (int i = s; i < y; i++)
if ((i % 4 == 0 && i % 100 != 0) || i % 400 == 0)
c++;
return c;
}
int TandN(int n) {
int two = 0, nine = 0;
while (n) {
if (n % 10 == 2) two++;
if (n % 10 == 9) nine++;
if (two && nine) return 1;
n /= 10;
}
return 0;
}
int main() {
int q, y, m, d, c;
int cntDay[12] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
scanf("%d", &q);
while (q--) {
scanf("%d %d %d", &y, &m, &d);
c = 0;
for (int i = 1; i < y; i++)
for (int j = 1; j <= 12; j++)
for (int k = 1; k <= cntDay[j - 1]; k++)
c += TandN(10000 * i + 100 * j + k);
for (int j = 1; j < m ; j++)
for (int k = 1; k <= cntDay[j - 1]; k++)
c += TandN(10000 * y + 100 * j + k);
for (int k = 1; k <= d; k++)
c += TandN(10000 * y + 100 * m + k);
if (Rc(y, y + 1)) c += m > 2 || (m == 2 && d == 29);
c += Rc(1, y);
printf("%d ", c);
}
return 0;
}
『捌』 用c語言寫一個程序,輸入年月日,把日期自動加一天,然後輸入.
這是陽歷的常識:
陽歷(即公歷),是世界上多數國家通用的歷法,由"儒略歷"修訂而成。儒略歷
是公元前46年,古羅馬統帥儒略、愷撒決定採用的歷法。
陽歷,是以地球繞太陽運動作為根據的歷法。它以地球繞太陽一周(一回歸年)為
一年。一回歸年的長度是365.2422日,也就是365天5小時48分46秒,積累4年共有23小時
15分4秒,大約等於一天,所以每4年增加1天,加在2月的末尾,得366天,就是閏年。但
是4年加1天實際回歸年多了44分56秒,積滿128年左右就又多算了一天,也就是在400年中
約多算了3天。
陽歷閏年規定:公元年數可用4整除的,就算閏年;為了要在400年減去多算的3天,
並規定公元世紀的整數,即公元年數是100的整數時,須用400來整除的才算閏年,如1600
年、2000年、2200年、2400年就是閏年。這樣就巧妙地在400年中減去了3天,陽歷規定每
年都是12個月,月份的大小完全是人為的規定,現在規定每年的1、3、5、7、8、10、12
月為大月,每月31天;4、6、9、11月為小月,每月30天;2月平年是28天,閏年是29天。
歸納上面的得出結論:
陽歷:
閏年,2月29天,平年28天。
其它月,1、3、5、7、8、10、12為大月31天。
2、4、6、9、11為小月30天。
能被400整除的是閏年;
除能被100整除的不是閏年(能被400整除的除外)其餘能被4整除的是閏年。
所以你只要計算是不是閏年,就可以識別2月份了,所以這個應該不是很難,關鍵
是閏年。
下面是我花了30分鍾寫的程序,我一直用C++,由於不知道C支不支持布爾型,所以兩個判斷的函數返回用整型。你看一下程序能不能運行。我在VC60下編譯通過。
#include "stdio.h"
int IsLeapYear(int Year);//判斷是不是閏年。
int IsCurrentDate(int Year,int Month,int Day);//是不是正確的日期。
int ReturnNextDay(int Year,int Month,int Day);//返回下一天,也有判斷是不是正確的日期。
int LeapYear_Month_SumDay[12]={31,29,31,30,31,30,31,31,30,31,30,31};//閏年數組,保存各月天數。
void main()
{
int Year=0,Month=0,Day=0,NextDay=0;
printf("pleace enter right Date(example:2005 6 27):\n");
scanf("%d%d%d",&Year,&Month,&Day);
NextDay=ReturnNextDay(Year,Month,Day);
switch (NextDay)
{
case 0: printf("not a current date\n");
break;
case 1:
if (Month==12)
{
Year++;
Month=1;
}
else
{
Month++;
}
break;
}
if (NextDay!=0) printf("The you input next date is %d-%d-%d.Thank use bye bye!\n",Year,Month,NextDay);
}
int IsLeapYear(int Year)
{
if (Year%4==0)
{
if (Year%400) return 1;
else
{
if (Year%100==0) return 0;
else return 1;
}
}
else
{
return 0;
}
}
int IsCurrentDate(int Year,int Month,int Day)
{
if ((Year<0) && (Year>9999) && (Month>12) && (Month<1) && (Day<1) &&(Day>31) )return 0;
else return 1;
}
int ReturnNextDay(int Year,int Month,int Day)
{
int ThisMonthSumDay;
if (IsCurrentDate(Year,Month,Day)==1)
{
ThisMonthSumDay=LeapYear_Month_SumDay[Month-1];
if (Month==2)
{
if (IsLeapYear(Year)==0) ThisMonthSumDay--;
}
if (Day<ThisMonthSumDay)
{
return ++Day;
}
else
{
if (Day==ThisMonthSumDay)
{
return 1;
}
else
{
return 0;
}
}
}
else
{
return 0;
}
}
『玖』 excel內如何將日期和時間合並
1.打開Excel表格,選中需要合並日期時間的單元格。
2.如果我們要合並B7和C7單元格里的日期時間,那麼我們可以在單元格里輸入「=B7+C7」即可。
3.這樣B7與C7單元格里的日期時間就合並啦,是不是很簡單呢?