PCDVD數位科技討論區
PCDVD數位科技討論區   註冊 常見問題 標記討論區為已讀

回到   PCDVD數位科技討論區 > 其他群組 > 七嘴八舌異言堂
帳戶
密碼
 

  回應
 
主題工具
vxr
Elite Member
 
vxr的大頭照
 

加入日期: May 2002
您的住址: 地球的上面..
文章: 5,854
Exclamation

引用:
作者micall.lee
如果自己都不願意學,該上課卻翹課,考試都作弊過關,不會是正常

我的問題是如果學生願意好好上課,學校教育也沒辦法讓資工系畢業的寫這種邏輯?

寫不出來沒關係...
學會看API的doc就行了...
練一練就會寫了..

如果連API的doc都看不懂, 那就真的是入錯行了...
沒天分, 沒資質...
學會看API的doc比會寫還重要..
很多就是看到API文件是英文開頭就馬上放棄...

學校教育教的一個課題應該也包括如何看懂API文件..
只是很多應該都是略過不講.....
     
      

此文章於 2015-05-23 09:00 PM 被 vxr 編輯.
舊 2015-05-23, 08:54 PM #31
回應時引用此文章
vxr離線中  
NTC_TW_IT
Regular Member
 

加入日期: Jul 2014
文章: 89
一年有365天
一年有約52周=52*7+1
所以正常情況下,每年當月當日的星期x就會自動shift一天
如果偷懶一點,弄個長度為12的陣列,隨便抓各一年把當年每月第二個星期二擺進去
這樣就可以瞬間抓出你要的答案了
假如以2017當基準(2016是閏年)
2017年二月的第二個星期二是7號-->隔年就會變6號-->再隔年5-->再隔年4->再隔年9(剛過閏年多減1--因為2-2=0,所以2會落到第一周,要加7才對)
用這個演算法,應該很容易寫成程式吧?
 
舊 2015-05-23, 08:57 PM #32
回應時引用此文章
NTC_TW_IT離線中  
AntoineHu
Silent Member
 

加入日期: May 2015
文章: 1
星期是循環的,所以第二個週二一定在第8∼14天之間,只有7種可能,判斷一下就好,不用迴圈...
如果知道 xx月 1日 是星期w
w>2 : 第二個星期二是 xx月 17-w 日
w<=2 : 第二個星期二是 xx月 10-w 日

此文章於 2015-05-23 09:23 PM 被 AntoineHu 編輯.
舊 2015-05-23, 09:22 PM #33
回應時引用此文章
AntoineHu離線中  
打工吧魔王大人
*停權中*
 
打工吧魔王大人的大頭照
 

加入日期: May 2014
您的住址: 某個不大不小的島
文章: 628
引用:
作者vxr
寫不出來沒關係...
學會看API的doc就行了...

學校教育教的一個課題應該也包括如何看懂API文件..
只是很多應該都是略過不講.....


那,把
http://developer.android.com/reference/packages.html
看完就????
舊 2015-05-23, 09:54 PM #34
回應時引用此文章
打工吧魔王大人離線中  
vxr
Elite Member
 
vxr的大頭照
 

加入日期: May 2002
您的住址: 地球的上面..
文章: 5,854
Exclamation

引用:
作者打工吧魔王大人

你覺得你很神..
你就把他看完吧......

我個人不想做這種殺死腦細胞......
舊 2015-05-23, 09:58 PM #35
回應時引用此文章
vxr離線中  
Crazynut
Master Member
 

加入日期: Apr 2001
您的住址: 高雄
文章: 2,247
我的第一感也是找到第一個星期二,然後給它+7天……

路有很多種啦,知道剛好可以應用的函數很好,不知道也無所謂,只要邏輯正確都可以推出來的。

年輕時和教課的講師說的一樣,會沈迷於盡可能寫出精簡的程式,最好一行結束,又帥又神氣。

其實這都不是必要的,寫出簡明易懂的程式比較方便後人維護、依情況改變時方便修改才是正途。等到程式龐大到某個程度再來考慮精簡的問題吧。
__________________
簽名檔真是礙眼…還是讓版面乾淨點吧!
舊 2015-05-24, 07:06 AM #36
回應時引用此文章
Crazynut離線中  
嚐起來像雞
Major Member
 
嚐起來像雞的大頭照
 

加入日期: Nov 2004
您的住址: 高雄
文章: 276
PHP
代碼:
<?php
    $year = '2015';
    $month = '04';
    $dt = new DateTime("{$year}-{$month}");
    $dt->modify('second tuesday');
    echo "{$year}年{$month}月的第二個禮拜二是",$dt->format('Y-m-d');
?>


會不會寫不重要
我覺得重要的是有基本sense跟找尋資源的能力
__________________

It's when you start to become really afraid of death,
that you learn to appreciate life. [Leon]

此文章於 2015-05-24 10:25 AM 被 嚐起來像雞 編輯.
舊 2015-05-24, 10:21 AM #37
回應時引用此文章
嚐起來像雞離線中  
炭甲郎
New Member
 
炭甲郎的大頭照
 

加入日期: Jan 2008
文章: 2
如果可以運用模組的話
這程式邏輯不是很難

使用 PERL
代碼:
use DateTime;
my $yyyy = 2015;
my $mm = 05;
my $date = DateTime->new(year => $yyyy, month => $mm);
$date->subtract(days => ($date->day_of_week - 2) % 7 - 7 * 2);
print "$yyyy年$mm月的第二個禮拜二是$date\n";


代碼:
use Date::Manip::Base;
my $dmb = new Date::Manip::Base;
my $yyyy = 2015;
my $mm = 5;
my $ymd = $dmb->nth_day_of_week( $yyyy, 2, 2, $mm);
printf "$yyyy年$mm月的第二個禮拜二是%s\n", join '-', @$ymd;


代碼:
use Date::Manip::Date;
my $date = new Date::Manip::Date;
$date->parse('Second Tuesday in Jul 2015');
print $date->printf('%Y-%m-%d'); # prints 2015-07-14
舊 2015-05-24, 01:13 PM #38
回應時引用此文章
炭甲郎離線中  
anomaly
Advance Member
 

加入日期: Feb 2003
文章: 406
重點是萬年曆的運算, 英文版Wiki有說如何運算

http://en.wikipedia.org/wiki/Julian_day#Calculation

以下C99 code是小弟網路上找的, 利用以上演算, 不仰賴外部library. code只有3行, 若要壓到1行也是可以的, 但compiler會抱怨, 且最後轉出的assembler不會比較優.

代碼:
#include <stdio.h>

const char *wd(int year, int month, int day) {
  static const char *weekdayname[] = {"Monday", "Tuesday",
        "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"};
  size_t JND =                                                     \
          day                                                      \
        + ((153 * (month + 12 * ((14 - month) / 12) - 3) + 2) / 5) \
        + (365 * (year + 4800 - ((14 - month) / 12)))              \
        + ((year + 4800 - ((14 - month) / 12)) / 4)                \
        - ((year + 4800 - ((14 - month) / 12)) / 100)              \
        + ((year + 4800 - ((14 - month) / 12)) / 400)              \
        - 32045;
  return weekdayname[JND % 7];
}


找出第一個週二再稍微寫一些code即可

此文章於 2015-05-24 01:42 PM 被 anomaly 編輯.
舊 2015-05-24, 01:34 PM #39
回應時引用此文章
anomaly離線中  
oversky.
Junior Member
 

加入日期: Feb 2013
文章: 761
http://rosettacode.org/wiki/Day_of_the_week

95 種程式語言應該夠用了吧
舊 2015-05-24, 02:19 PM #40
回應時引用此文章
oversky.離線中  


    回應


POPIN
主題工具

發表文章規則
不可以發起新主題
不可以回應主題
不可以上傳附加檔案
不可以編輯您的文章

vB 代碼打開
[IMG]代碼打開
HTML代碼關閉



所有的時間均為GMT +8。 現在的時間是03:52 AM.


vBulletin Version 3.0.1
powered_by_vbulletin 2025。