1. 程式人生 > >給定一個日期,輸出這個日期是該年的第幾天。 C語言來做

給定一個日期,輸出這個日期是該年的第幾天。 C語言來做

第幾天?

Time Limit : 2000/1000ms (Java/Other)   Memory Limit : 65536/32768K (Java/Other)
Total Submission(s) : 150   Accepted Submission(s) : 60
Problem Description 給定一個日期,輸出這個日期是該年的第幾天。
Input 輸入資料有多組,每組佔一行,資料格式為YYYY/MM/DD組成,具體參見sample input ,另外,可以向你確保所有的輸入資料是合法的。
Output 對於每組輸入資料,輸出一行,表示該日期是該年的第幾天。
Sample Input 1985/1/20 2006/3/12
Sample Output 20 71 注意:因為輸入的是1985/1/20這種形式,所以我們有兩種輸入方式 要麼字串輸入然後再轉化為普通數字,要麼直接:scanf("%d/%d/%d",&year,&month,&day);我的程式碼:
#include<stdio.h>
#include<string.h>
int isRuiNian(int year)
{
	if((year%400==0)||(year%4==0&&year%100!=0))
	return 1;
	return 0;
}
int main()
{
	int y[100];
	char str[100];
	while(gets(str)!=NULL)
	{	
		
		int i,j,sum=0,temp=0,len;
		len=strlen(str);
		for(i=0,j=0;i<len;i++)
		{
			if(str[i]=='/')
				{
					y[j++]=temp;
					temp=0;
				}
			else
				temp=temp*10+str[i]-'0';
		}
		y[2]=temp;
		for(i=1;i<y[1];i++)
		{
			if(i==1||i==3||i==5||i==7||i==8||i==10||i==12)
			sum+=31;
			else 
			{
				if(i==2)
				{
					if(isRuiNian(y[0]))
					sum+=29;
					else
					sum+=28;
				}
				else
				sum+=30;
			}
		}
		sum+=y[2];
		printf("%d\n",sum);
	}
	return 0;
	
}

相關推薦

給定一個日期輸出這個日期 C語言

第幾天? Time Limit : 2000/1000ms (Java/Other)   Memory Limit : 65536/32768K (Java/Other) Total Submission(s) : 150   Accepted Submission(s)

【資料結構與演算法】輸入、月、日輸出該日是

關鍵點 1、這裡要先判斷是否是閏年; 2、針對閏年與非閏年進行處理; 直接上 C 語言版本程式碼: #include <stdio.h> #include <string.h&

Java:給定一個日期輸出這個日期

import java.text.ParseException;   import java.text.SimpleDateFormat;   import java.util.*;   public class Main {          public static

C語言程式設計題給定一個日期輸出這個日期

/** C語言程式設計題 給定一個日期,輸出這個日期是該年的第幾天 */ int getIndexOfDay(int year, int month, int day) { int months[12] = {31, 28, 31, 30, 31, 30

輸入一個日期輸出這個日期是所在

#if 0 #include<stdio.h> //輸入一個日期,判斷這個日期是所在年的第幾天 int findDate(int year,int mouth,int day) { boo

練習四:日期計算(輸入某某月某日計算出這一的方法)

nbsp style 內置 練習 day pan and error == 實現輸入某年某月某日計算出這一天是該年第幾天的方法方法一:笨辦法 1 list_day = [0,31,28,31,30,31,30,31,31,30,31,30,31] 2 year

輸入日期判斷為 (易懂版)

#include<stdio.h> int main() {   int i,j,k;   while(scanf("%d/%d/%d",&i,&j,&k) !=

(輸入年月日輸出是這一c語言程式

做為一個學c語言的新手,今天學習了switch語句。當時老師說case語句後面如果不跟break;會按照順序執行,而這種結構也有它的優點,通過今天對這個程式的編寫,也對switch有了全新的認識; /* 請分別輸入年月日三個數值,計算出這是這一年的第幾天? (提示:要考慮閏

C語言 鍵盤輸入年月日計算

設計程式,從 鍵盤輸入年月日三個變數year,month,day,計算該日是該年第幾天 #include<stdio.h> int main() { int year, month, day,n,i,sum=0; scanf("%d,%d,%d", &

輸入年月日輸出這個日期,java語言switch-case實現

充分利用switch-case 中break的特性,更方便的求出天數。 要點: 月份倒著寫,並且每個case 不要新增break;那麼,程式就會一直往下執行,直到month=1,進而求出了總的天數。 以下是原始碼: package third; impo

華為OJ ---計算日期到天數的轉換(給定一個日期輸出為這一

問題描述: 根據輸入的日期,計算是這一年的第幾天。。 詳細描述: 輸入某年某月某日,判斷這一天是這一年的第幾天?。 思路分析:1.判斷年分是平年還是閏年((year%4==0&&

輸入一個日期計算這個日期與 2018-03-12差多少

#coding=gbk ''' 1、計算輸入日期與基準日期的差異天數 2、 ''' #輸入一個日期,計算這個日期與 2018-03-12差多少天; def count_days(): dt_1='2018-03-12' dt_2=[int(i) for i in dt_1.split(

C/C++練習題 定義一個日期變數進行、月、日的輸入計算日期是本年中的

問題及程式碼:/* *Copyright(c)2016,煙臺大學計算機與控制工程學院 *All right reserved. *檔名稱:main.cpp *作 者:郝昱猛 *完成日期:2016年4月28日 *版 本 號:v1.0 * *問題描述:.定

C++實現輸入一個日期輸出它是一年中的

操作程式碼: #include<iostream> using namespace std; int main() {

給定一個字串輸出所有的排列組合方式

去參加一個筆試,遇到一個問題就是給定字串"123456"要我寫程式輸出所有的排列組合方式,當時頭很大,一直想不出來,於是很磋的寫了迴圈。回來了好好想了想,參考網上的資料,今天真正理解並且自己寫了出來。是用遞迴,理解為每次都是求已知的字串與未排列的字串的組合! /* 201

//輸入一個日期計算並輸出這天是今年的

#include<iostream> using namespace std; bool fun1(int y);//判斷是否是瑞年 int mouth(int m);//返回各月天數 int y,m,d;       //全域性變數年-月-日 int main()//主函式 {   bool p

輸入一個集合輸出這個集合的所有子集

package cn.edu.bupt.sherry; import java.util.ArrayList; import java.util.Scanner; public class Test

給定一個集合輸出它的所有子集

題目:集合是由大字字母(A-Z)組成的,要求輸出集合的所有子集,每個子集一行,不能使用遞迴。 例如 “ABD”的子集: NULL(空集)、A、B、C、AB、AC、BC、ABC(共8個) 這個題可以用點陣圖的思想做。 比如集合{A,B} 對應位向量v=000...0001